Generated by Cython 0.17 on Mon Mar 18 21:36:34 2013
Raw output: _distortion.c
1: #!/usr/bin/env python
/* "_distortion.pyx":1 * #!/usr/bin/env python #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* # -*- coding: utf-8 -*- * # */ __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); if (PyObject_SetAttr(__pyx_m, __pyx_n_s____test__, ((PyObject *)__pyx_t_1))<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
2: # -*- coding: utf-8 -*-
3: #
4: # Project: Fast Azimuthal integration
5: # https://github.com/kif/pyFAI
6: #
7: # Copyright (C) European Synchrotron Radiation Facility, Grenoble, France
8: #
9: # Principal author: Jérôme Kieffer (Jerome.Kieffer@ESRF.eu)
10: #
11: # This program is free software: you can redistribute it and/or modify
12: # it under the terms of the GNU General Public License as published by
13: # the Free Software Foundation, either version 3 of the License, or
14: # (at your option) any later version.
15: #
16: # This program is distributed in the hope that it will be useful,
17: # but WITHOUT ANY WARRANTY; without even the implied warranty of
18: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19: # GNU General Public License for more details.
20: #
21: # You should have received a copy of the GNU General Public License
22: # along with this program. If not, see <http://www.gnu.org/licenses/>.
23: #
24:
25:
26: import cython
27: cimport numpy
28: import numpy
/* "_distortion.pyx":28 * import cython * cimport numpy * import numpy #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* from cython.parallel import prange * from libc.math cimport floor,ceil, fabs */ __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__numpy), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__numpy, __pyx_t_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
29: from cython.parallel import prange
30: from libc.math cimport floor,ceil, fabs
31: from libc.string cimport memset
32: import logging, threading
/* "_distortion.pyx":32 * from libc.math cimport floor,ceil, fabs * from libc.string cimport memset * import logging, threading #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* import types, os, sys, time * logger = logging.getLogger("pyFAI._distortion") */ __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__logging), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__logging, __pyx_t_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__threading), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__threading, __pyx_t_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
33: import types, os, sys, time
/* "_distortion.pyx":33 * from libc.string cimport memset * import logging, threading * import types, os, sys, time #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* logger = logging.getLogger("pyFAI._distortion") * from .detectors import detector_factory */ __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__types), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__types, __pyx_t_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__os), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__os, __pyx_t_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__sys), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__sys, __pyx_t_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__time), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__time, __pyx_t_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
34: logger = logging.getLogger("pyFAI._distortion")
/* "_distortion.pyx":34 * import logging, threading * import types, os, sys, time * logger = logging.getLogger("pyFAI._distortion") #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* from .detectors import detector_factory * from .utils import timeit */ __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__logging); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__getLogger); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_129), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyObject_SetAttr(__pyx_m, __pyx_n_s__logger, __pyx_t_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "_distortion.pyx":34 * import logging, threading * import types, os, sys, time * logger = logging.getLogger("pyFAI._distortion") #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* from .detectors import detector_factory * from .utils import timeit */ __pyx_k_tuple_129 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_129)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_129); __Pyx_INCREF(((PyObject *)__pyx_kp_s_128)); PyTuple_SET_ITEM(__pyx_k_tuple_129, 0, ((PyObject *)__pyx_kp_s_128)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_128)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_129));
35: from .detectors import detector_factory
/* "_distortion.pyx":35 * import types, os, sys, time * logger = logging.getLogger("pyFAI._distortion") * from .detectors import detector_factory #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* from .utils import timeit * import fabio */ __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_n_s__detector_factory)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__detector_factory)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__detector_factory)); __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s__detectors), ((PyObject *)__pyx_t_1), 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__detector_factory); if (__pyx_t_1 == NULL) { if (PyErr_ExceptionMatches(PyExc_AttributeError)) __Pyx_RaiseImportError(__pyx_n_s__detector_factory); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__detector_factory, __pyx_t_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
36: from .utils import timeit
/* "_distortion.pyx":36 * logger = logging.getLogger("pyFAI._distortion") * from .detectors import detector_factory * from .utils import timeit #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* import fabio * */ __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_n_s__timeit)); PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_n_s__timeit)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__timeit)); __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__utils), ((PyObject *)__pyx_t_2), 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__timeit); if (__pyx_t_2 == NULL) { if (PyErr_ExceptionMatches(PyExc_AttributeError)) __Pyx_RaiseImportError(__pyx_n_s__timeit); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __Pyx_GOTREF(__pyx_t_2); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__timeit, __pyx_t_2)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
37: import fabio
/* "_distortion.pyx":37 * from .detectors import detector_factory * from .utils import timeit * import fabio #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * cdef struct lut_point: */ __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__fabio), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__fabio, __pyx_t_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
38:
39: cdef struct lut_point:
/* "_distortion.pyx":39 * import fabio * * cdef struct lut_point: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* numpy.int32_t idx * numpy.float32_t coef */ struct __pyx_t_11_distortion_lut_point { __pyx_t_5numpy_int32_t idx; __pyx_t_5numpy_float32_t coef; };
40: numpy.int32_t idx
41: numpy.float32_t coef
42:
43: cdef inline float min4f(float a, float b, float c, float d) nogil:
/* "_distortion.pyx":43 * numpy.float32_t coef * * cdef inline float min4f(float a, float b, float c, float d) nogil: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* """Calculates the min of 4 float numbers""" * if (a<
= b) and (a<
= c) and (a<
= d): */ static CYTHON_INLINE float __pyx_f_11_distortion_min4f(float __pyx_v_a, float __pyx_v_b, float __pyx_v_c, float __pyx_v_d) { float __pyx_r;
44: """Calculates the min of 4 float numbers"""
45: if (a <= b) and (a <= c) and (a <= d):
/* "_distortion.pyx":45 * cdef inline float min4f(float a, float b, float c, float d) nogil: * """Calculates the min of 4 float numbers""" * if (a<
= b) and (a<
= c) and (a<
= d): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return a * if (b<
= a) and (b<
= c) and (b<
= d): */ __pyx_t_1 = (__pyx_v_a<
= __pyx_v_b); if (__pyx_t_1) { __pyx_t_2 = (__pyx_v_a<
= __pyx_v_c); if (__pyx_t_2) { __pyx_t_3 = (__pyx_v_a<
= __pyx_v_d); __pyx_t_4 = __pyx_t_3; } else { __pyx_t_4 = __pyx_t_2; } __pyx_t_2 = __pyx_t_4; } else { __pyx_t_2 = __pyx_t_1; } if (__pyx_t_2) {
46: return a
/* "_distortion.pyx":46 * """Calculates the min of 4 float numbers""" * if (a<
= b) and (a<
= c) and (a<
= d): * return a #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if (b<
= a) and (b<
= c) and (b<
= d): * return b */ __pyx_r = __pyx_v_a; goto __pyx_L0; goto __pyx_L3; } __pyx_L3:;
47: if (b <= a) and (b <= c) and (b <= d):
/* "_distortion.pyx":47 * if (a<
= b) and (a<
= c) and (a<
= d): * return a * if (b<
= a) and (b<
= c) and (b<
= d): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return b * if (c<
= a) and (c<
= b) and (c<
= d): */ __pyx_t_2 = (__pyx_v_b<
= __pyx_v_a); if (__pyx_t_2) { __pyx_t_1 = (__pyx_v_b<
= __pyx_v_c); if (__pyx_t_1) { __pyx_t_4 = (__pyx_v_b<
= __pyx_v_d); __pyx_t_3 = __pyx_t_4; } else { __pyx_t_3 = __pyx_t_1; } __pyx_t_1 = __pyx_t_3; } else { __pyx_t_1 = __pyx_t_2; } if (__pyx_t_1) {
48: return b
/* "_distortion.pyx":48 * return a * if (b<
= a) and (b<
= c) and (b<
= d): * return b #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if (c<
= a) and (c<
= b) and (c<
= d): * return c */ __pyx_r = __pyx_v_b; goto __pyx_L0; goto __pyx_L4; } __pyx_L4:;
49: if (c <= a) and (c <= b) and (c <= d):
/* "_distortion.pyx":49 * if (b<
= a) and (b<
= c) and (b<
= d): * return b * if (c<
= a) and (c<
= b) and (c<
= d): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return c * else: */ __pyx_t_1 = (__pyx_v_c<
= __pyx_v_a); if (__pyx_t_1) { __pyx_t_2 = (__pyx_v_c<
= __pyx_v_b); if (__pyx_t_2) { __pyx_t_3 = (__pyx_v_c<
= __pyx_v_d); __pyx_t_4 = __pyx_t_3; } else { __pyx_t_4 = __pyx_t_2; } __pyx_t_2 = __pyx_t_4; } else { __pyx_t_2 = __pyx_t_1; } if (__pyx_t_2) {
50: return c
/* "_distortion.pyx":50 * return b * if (c<
= a) and (c<
= b) and (c<
= d): * return c #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* else: * return d */ __pyx_r = __pyx_v_c; goto __pyx_L0; goto __pyx_L5; } /*else*/ {
51: else:
52: return d
/* "_distortion.pyx":52 * return c * else: * return d #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * cdef inline float max4f(float a, float b, float c, float d) nogil: */ __pyx_r = __pyx_v_d; goto __pyx_L0; } __pyx_L5:; __pyx_r = 0; __pyx_L0:; return __pyx_r; }
53:
54: cdef inline float max4f(float a, float b, float c, float d) nogil:
/* "_distortion.pyx":54 * return d * * cdef inline float max4f(float a, float b, float c, float d) nogil: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* """Calculates the max of 4 float numbers""" * if (a >= b) and (a >= c) and (a >= d): */ static CYTHON_INLINE float __pyx_f_11_distortion_max4f(float __pyx_v_a, float __pyx_v_b, float __pyx_v_c, float __pyx_v_d) { float __pyx_r;
55: """Calculates the max of 4 float numbers"""
56: if (a >= b) and (a >= c) and (a >= d):
/* "_distortion.pyx":56 * cdef inline float max4f(float a, float b, float c, float d) nogil: * """Calculates the max of 4 float numbers""" * if (a >= b) and (a >= c) and (a >= d): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return a * if (b >= a) and (b >= c) and (b >= d): */ __pyx_t_1 = (__pyx_v_a >= __pyx_v_b); if (__pyx_t_1) { __pyx_t_2 = (__pyx_v_a >= __pyx_v_c); if (__pyx_t_2) { __pyx_t_3 = (__pyx_v_a >= __pyx_v_d); __pyx_t_4 = __pyx_t_3; } else { __pyx_t_4 = __pyx_t_2; } __pyx_t_2 = __pyx_t_4; } else { __pyx_t_2 = __pyx_t_1; } if (__pyx_t_2) {
57: return a
/* "_distortion.pyx":57 * """Calculates the max of 4 float numbers""" * if (a >= b) and (a >= c) and (a >= d): * return a #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if (b >= a) and (b >= c) and (b >= d): * return b */ __pyx_r = __pyx_v_a; goto __pyx_L0; goto __pyx_L3; } __pyx_L3:;
58: if (b >= a) and (b >= c) and (b >= d):
/* "_distortion.pyx":58 * if (a >= b) and (a >= c) and (a >= d): * return a * if (b >= a) and (b >= c) and (b >= d): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return b * if (c >= a) and (c >= b) and (c >= d): */ __pyx_t_2 = (__pyx_v_b >= __pyx_v_a); if (__pyx_t_2) { __pyx_t_1 = (__pyx_v_b >= __pyx_v_c); if (__pyx_t_1) { __pyx_t_4 = (__pyx_v_b >= __pyx_v_d); __pyx_t_3 = __pyx_t_4; } else { __pyx_t_3 = __pyx_t_1; } __pyx_t_1 = __pyx_t_3; } else { __pyx_t_1 = __pyx_t_2; } if (__pyx_t_1) {
59: return b
/* "_distortion.pyx":59 * return a * if (b >= a) and (b >= c) and (b >= d): * return b #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if (c >= a) and (c >= b) and (c >= d): * return c */ __pyx_r = __pyx_v_b; goto __pyx_L0; goto __pyx_L4; } __pyx_L4:;
60: if (c >= a) and (c >= b) and (c >= d):
/* "_distortion.pyx":60 * if (b >= a) and (b >= c) and (b >= d): * return b * if (c >= a) and (c >= b) and (c >= d): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return c * else: */ __pyx_t_1 = (__pyx_v_c >= __pyx_v_a); if (__pyx_t_1) { __pyx_t_2 = (__pyx_v_c >= __pyx_v_b); if (__pyx_t_2) { __pyx_t_3 = (__pyx_v_c >= __pyx_v_d); __pyx_t_4 = __pyx_t_3; } else { __pyx_t_4 = __pyx_t_2; } __pyx_t_2 = __pyx_t_4; } else { __pyx_t_2 = __pyx_t_1; } if (__pyx_t_2) {
61: return c
/* "_distortion.pyx":61 * return b * if (c >= a) and (c >= b) and (c >= d): * return c #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* else: * return d */ __pyx_r = __pyx_v_c; goto __pyx_L0; goto __pyx_L5; } /*else*/ {
62: else:
63: return d
/* "_distortion.pyx":63 * return c * else: * return d #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * */ __pyx_r = __pyx_v_d; goto __pyx_L0; } __pyx_L5:; __pyx_r = 0; __pyx_L0:; return __pyx_r; }
64:
65:
66: cpdef inline float calc_area(float I1, float I2, float slope, float intercept) nogil:
/* "_distortion.pyx":66 * * * cpdef inline float calc_area(float I1, float I2, float slope, float intercept) nogil: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* "Calculate the area between I1 and I2 of a line with a given slope & intercept" * return 0.5 * (I2 - I1) * (slope * (I2 + I1) + 2 * intercept) */ static PyObject *__pyx_pw_11_distortion_1calc_area(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static CYTHON_INLINE float __pyx_f_11_distortion_calc_area(float __pyx_v_I1, float __pyx_v_I2, float __pyx_v_slope, float __pyx_v_intercept, CYTHON_UNUSED int __pyx_skip_dispatch) { float __pyx_r; /* "_distortion.pyx":66 * * * cpdef inline float calc_area(float I1, float I2, float slope, float intercept) nogil: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* "Calculate the area between I1 and I2 of a line with a given slope & intercept" * return 0.5 * (I2 - I1) * (slope * (I2 + I1) + 2 * intercept) */ static PyObject *__pyx_pf_11_distortion_calc_area(CYTHON_UNUSED PyObject *__pyx_self, float __pyx_v_I1, float __pyx_v_I2, float __pyx_v_slope, float __pyx_v_intercept) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("calc_area", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_f_11_distortion_calc_area(__pyx_v_I1, __pyx_v_I2, __pyx_v_slope, __pyx_v_intercept, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("_distortion.calc_area", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
67: "Calculate the area between I1 and I2 of a line with a given slope & intercept"
68: return 0.5 * (I2 - I1) * (slope * (I2 + I1) + 2 * intercept)
/* "_distortion.pyx":68 * cpdef inline float calc_area(float I1, float I2, float slope, float intercept) nogil: * "Calculate the area between I1 and I2 of a line with a given slope & intercept" * return 0.5 * (I2 - I1) * (slope * (I2 + I1) + 2 * intercept) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * @cython.wraparound(False) */ __pyx_r = ((0.5 * (__pyx_v_I2 - __pyx_v_I1)) * ((__pyx_v_slope * (__pyx_v_I2 + __pyx_v_I1)) + (2.0 * __pyx_v_intercept))); goto __pyx_L0; __pyx_r = 0; __pyx_L0:; return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11_distortion_1calc_area(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_11_distortion_calc_area[] = "Calculate the area between I1 and I2 of a line with a given slope & intercept"; static PyObject *__pyx_pw_11_distortion_1calc_area(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { float __pyx_v_I1; float __pyx_v_I2; float __pyx_v_slope; float __pyx_v_intercept; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("calc_area (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__I1,&__pyx_n_s__I2,&__pyx_n_s__slope,&__pyx_n_s__intercept,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); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__I1)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__I2)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("calc_area", 1, 4, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 2: if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__slope)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("calc_area", 1, 4, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 3: if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__intercept)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("calc_area", 1, 4, 4, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calc_area")<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __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_I1 = __pyx_PyFloat_AsFloat(values[0]); if (unlikely((__pyx_v_I1 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_I2 = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_I2 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_slope = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_slope == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_intercept = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_intercept == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("calc_area", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("_distortion.calc_area", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11_distortion_calc_area(__pyx_self, __pyx_v_I1, __pyx_v_I2, __pyx_v_slope, __pyx_v_intercept); __Pyx_RefNannyFinishContext(); return __pyx_r; }
69:
70: @cython.wraparound(False)
71: @cython.boundscheck(False)
72: @cython.cdivision(True)
73: cdef inline void integrate(float[:,:] box, float start, float stop, float slope, float intercept) nogil:
/* "_distortion.pyx":73 * @cython.boundscheck(False) * @cython.cdivision(True) * cdef inline void integrate(float[:,:] box, float start, float stop, float slope, float intercept) nogil: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* "Integrate in a box a line between start and stop, line defined by its slope & intercept " * cdef int i, h = 0 */ static CYTHON_INLINE void __pyx_f_11_distortion_integrate(__Pyx_memviewslice __pyx_v_box, float __pyx_v_start, float __pyx_v_stop, float __pyx_v_slope, float __pyx_v_intercept) { int __pyx_v_i; int __pyx_v_h; float __pyx_v_P; float __pyx_v_dP; float __pyx_v_A; float __pyx_v_AA; float __pyx_v_dA; float __pyx_v_sign;
74: "Integrate in a box a line between start and stop, line defined by its slope & intercept "
75: cdef int i, h = 0
/* "_distortion.pyx":75 * cdef inline void integrate(float[:,:] box, float start, float stop, float slope, float intercept) nogil: * "Integrate in a box a line between start and stop, line defined by its slope & intercept " * cdef int i, h = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cdef float P,dP, A, AA, dA, sign * if start<
stop: # positive contribution */ __pyx_v_h = 0;
76: cdef float P,dP, A, AA, dA, sign
77: if start < stop: # positive contribution
/* "_distortion.pyx":77 * cdef int i, h = 0 * cdef float P,dP, A, AA, dA, sign * if start<
stop: # positive contribution #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* P = ceil(start) * dP = P - start */ __pyx_t_1 = (__pyx_v_start<
__pyx_v_stop); if (__pyx_t_1) {
78: P = ceil(start)
/* "_distortion.pyx":78 * cdef float P,dP, A, AA, dA, sign * if start<
stop: # positive contribution * P = ceil(start) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dP = P - start * if P > stop: # start and stop are in the same unit */ __pyx_v_P = ceil(__pyx_v_start);
79: dP = P - start
/* "_distortion.pyx":79 * if start<
stop: # positive contribution * P = ceil(start) * dP = P - start #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if P > stop: # start and stop are in the same unit * A = calc_area(start, stop, slope, intercept) */ __pyx_v_dP = (__pyx_v_P - __pyx_v_start);
80: if P > stop: # start and stop are in the same unit
/* "_distortion.pyx":80 * P = ceil(start) * dP = P - start * if P > stop: # start and stop are in the same unit #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* A = calc_area(start, stop, slope, intercept) * if A != 0: */ __pyx_t_1 = (__pyx_v_P > __pyx_v_stop); if (__pyx_t_1) {
81: A = calc_area(start, stop, slope, intercept)
/* "_distortion.pyx":81 * dP = P - start * if P > stop: # start and stop are in the same unit * A = calc_area(start, stop, slope, intercept) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if A != 0: * AA = fabs(A) */ __pyx_v_A = __pyx_f_11_distortion_calc_area(__pyx_v_start, __pyx_v_stop, __pyx_v_slope, __pyx_v_intercept, 0);
82: if A != 0:
/* "_distortion.pyx":82 * if P > stop: # start and stop are in the same unit * A = calc_area(start, stop, slope, intercept) * if A != 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = fabs(A) * sign = A / AA */ __pyx_t_1 = (__pyx_v_A != 0.0); if (__pyx_t_1) {
83: AA = fabs(A)
/* "_distortion.pyx":83 * A = calc_area(start, stop, slope, intercept) * if A != 0: * AA = fabs(A) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* sign = A / AA * dA = (stop - start) # always positive */ __pyx_v_AA = fabs(__pyx_v_A);
84: sign = A / AA
/* "_distortion.pyx":84 * if A != 0: * AA = fabs(A) * sign = A / AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = (stop - start) # always positive * h = 0 */ __pyx_v_sign = (__pyx_v_A / __pyx_v_AA);
85: dA = (stop - start) # always positive
/* "_distortion.pyx":85 * AA = fabs(A) * sign = A / AA * dA = (stop - start) # always positive #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h = 0 * while AA > 0: */ __pyx_v_dA = (__pyx_v_stop - __pyx_v_start);
86: h = 0
/* "_distortion.pyx":86 * sign = A / AA * dA = (stop - start) # always positive * h = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* while AA > 0: * if dA > AA: */ __pyx_v_h = 0;
87: while AA > 0:
/* "_distortion.pyx":87 * dA = (stop - start) # always positive * h = 0 * while AA > 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if dA > AA: * dA = AA */ while (1) { __pyx_t_1 = (__pyx_v_AA > 0.0); if (!__pyx_t_1) break;
88: if dA > AA:
/* "_distortion.pyx":88 * h = 0 * while AA > 0: * if dA > AA: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = AA * AA = -1 */ __pyx_t_1 = (__pyx_v_dA > __pyx_v_AA); if (__pyx_t_1) {
89: dA = AA
/* "_distortion.pyx":89 * while AA > 0: * if dA > AA: * dA = AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = -1 * box[(<
int> floor(start)), h] += sign * dA */ __pyx_v_dA = __pyx_v_AA;
90: AA = -1
/* "_distortion.pyx":90 * if dA > AA: * dA = AA * AA = -1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* box[(<
int> floor(start)), h] += sign * dA * AA -= dA */ __pyx_v_AA = -1.0; goto __pyx_L8; } __pyx_L8:;
91: box[(<int> floor(start)), h] += sign * dA
/* "_distortion.pyx":91 * dA = AA * AA = -1 * box[(<
int> floor(start)), h] += sign * dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA -= dA * h += 1 */ __pyx_t_2 = ((int)floor(__pyx_v_start)); __pyx_t_3 = __pyx_v_h; *((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_box.data + __pyx_t_2 * __pyx_v_box.strides[0]) ) + __pyx_t_3 * __pyx_v_box.strides[1]) )) += (__pyx_v_sign * __pyx_v_dA);
92: AA -= dA
/* "_distortion.pyx":92 * AA = -1 * box[(<
int> floor(start)), h] += sign * dA * AA -= dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h += 1 * else: */ __pyx_v_AA = (__pyx_v_AA - __pyx_v_dA);
93: h += 1
/* "_distortion.pyx":93 * box[(<
int> floor(start)), h] += sign * dA * AA -= dA * h += 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* else: * if dP > 0: */ __pyx_v_h = (__pyx_v_h + 1); } goto __pyx_L5; } __pyx_L5:; goto __pyx_L4; } /*else*/ {
94: else:
95: if dP > 0:
/* "_distortion.pyx":95 * h += 1 * else: * if dP > 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* A = calc_area(start, P, slope, intercept) * if A != 0: */ __pyx_t_1 = (__pyx_v_dP > 0.0); if (__pyx_t_1) {
96: A = calc_area(start, P, slope, intercept)
/* "_distortion.pyx":96 * else: * if dP > 0: * A = calc_area(start, P, slope, intercept) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if A != 0: * AA = fabs(A) */ __pyx_v_A = __pyx_f_11_distortion_calc_area(__pyx_v_start, __pyx_v_P, __pyx_v_slope, __pyx_v_intercept, 0);
97: if A != 0:
/* "_distortion.pyx":97 * if dP > 0: * A = calc_area(start, P, slope, intercept) * if A != 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = fabs(A) * sign = A / AA */ __pyx_t_1 = (__pyx_v_A != 0.0); if (__pyx_t_1) {
98: AA = fabs(A)
/* "_distortion.pyx":98 * A = calc_area(start, P, slope, intercept) * if A != 0: * AA = fabs(A) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* sign = A / AA * h = 0 */ __pyx_v_AA = fabs(__pyx_v_A);
99: sign = A / AA
/* "_distortion.pyx":99 * if A != 0: * AA = fabs(A) * sign = A / AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h = 0 * dA = dP */ __pyx_v_sign = (__pyx_v_A / __pyx_v_AA);
100: h = 0
/* "_distortion.pyx":100 * AA = fabs(A) * sign = A / AA * h = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = dP * while AA > 0: */ __pyx_v_h = 0;
101: dA = dP
/* "_distortion.pyx":101 * sign = A / AA * h = 0 * dA = dP #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* while AA > 0: * if dA > AA: */ __pyx_v_dA = __pyx_v_dP;
102: while AA > 0:
/* "_distortion.pyx":102 * h = 0 * dA = dP * while AA > 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if dA > AA: * dA = AA */ while (1) { __pyx_t_1 = (__pyx_v_AA > 0.0); if (!__pyx_t_1) break;
103: if dA > AA:
/* "_distortion.pyx":103 * dA = dP * while AA > 0: * if dA > AA: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = AA * AA = -1 */ __pyx_t_1 = (__pyx_v_dA > __pyx_v_AA); if (__pyx_t_1) {
104: dA = AA
/* "_distortion.pyx":104 * while AA > 0: * if dA > AA: * dA = AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = -1 * box[(<
int> floor(P)) - 1, h] += sign * dA */ __pyx_v_dA = __pyx_v_AA;
105: AA = -1
/* "_distortion.pyx":105 * if dA > AA: * dA = AA * AA = -1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* box[(<
int> floor(P)) - 1, h] += sign * dA * AA -= dA */ __pyx_v_AA = -1.0; goto __pyx_L13; } __pyx_L13:;
106: box[(<int> floor(P)) - 1, h] += sign * dA
/* "_distortion.pyx":106 * dA = AA * AA = -1 * box[(<
int> floor(P)) - 1, h] += sign * dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA -= dA * h += 1 */ __pyx_t_4 = (((int)floor(__pyx_v_P)) - 1); __pyx_t_5 = __pyx_v_h; *((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_box.data + __pyx_t_4 * __pyx_v_box.strides[0]) ) + __pyx_t_5 * __pyx_v_box.strides[1]) )) += (__pyx_v_sign * __pyx_v_dA);
107: AA -= dA
/* "_distortion.pyx":107 * AA = -1 * box[(<
int> floor(P)) - 1, h] += sign * dA * AA -= dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h += 1 * # subsection P1->Pn */ __pyx_v_AA = (__pyx_v_AA - __pyx_v_dA);
108: h += 1
/* "_distortion.pyx":108 * box[(<
int> floor(P)) - 1, h] += sign * dA * AA -= dA * h += 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* # subsection P1->Pn * for i in range((<
int> floor(P)), (<
int> floor(stop))): */ __pyx_v_h = (__pyx_v_h + 1); } goto __pyx_L10; } __pyx_L10:; goto __pyx_L9; } __pyx_L9:;
109: # subsection P1->Pn
110: for i in range((<int> floor(P)), (<int> floor(stop))):
/* "_distortion.pyx":110 * h += 1 * # subsection P1->Pn * for i in range((<
int> floor(P)), (<
int> floor(stop))): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* A = calc_area(i, i + 1, slope, intercept) * if A != 0: */ __pyx_t_6 = ((int)floor(__pyx_v_stop)); for (__pyx_t_7 = ((int)floor(__pyx_v_P)); __pyx_t_7<
__pyx_t_6; __pyx_t_7+=1) { __pyx_v_i = __pyx_t_7;
111: A = calc_area(i, i + 1, slope, intercept)
/* "_distortion.pyx":111 * # subsection P1->Pn * for i in range((<
int> floor(P)), (<
int> floor(stop))): * A = calc_area(i, i + 1, slope, intercept) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if A != 0: * AA = fabs(A) */ __pyx_v_A = __pyx_f_11_distortion_calc_area(__pyx_v_i, (__pyx_v_i + 1), __pyx_v_slope, __pyx_v_intercept, 0);
112: if A != 0:
/* "_distortion.pyx":112 * for i in range((<
int> floor(P)), (<
int> floor(stop))): * A = calc_area(i, i + 1, slope, intercept) * if A != 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = fabs(A) * sign = A / AA */ __pyx_t_1 = (__pyx_v_A != 0.0); if (__pyx_t_1) {
113: AA = fabs(A)
/* "_distortion.pyx":113 * A = calc_area(i, i + 1, slope, intercept) * if A != 0: * AA = fabs(A) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* sign = A / AA * */ __pyx_v_AA = fabs(__pyx_v_A);
114: sign = A / AA
/* "_distortion.pyx":114 * if A != 0: * AA = fabs(A) * sign = A / AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * h = 0 */ __pyx_v_sign = (__pyx_v_A / __pyx_v_AA);
115:
116: h = 0
/* "_distortion.pyx":116 * sign = A / AA * * h = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = 1.0 * while AA > 0: */ __pyx_v_h = 0;
117: dA = 1.0
/* "_distortion.pyx":117 * * h = 0 * dA = 1.0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* while AA > 0: * if dA > AA: */ __pyx_v_dA = 1.0;
118: while AA > 0:
/* "_distortion.pyx":118 * h = 0 * dA = 1.0 * while AA > 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if dA > AA: * dA = AA */ while (1) { __pyx_t_1 = (__pyx_v_AA > 0.0); if (!__pyx_t_1) break;
119: if dA > AA:
/* "_distortion.pyx":119 * dA = 1.0 * while AA > 0: * if dA > AA: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = AA * AA = -1 */ __pyx_t_1 = (__pyx_v_dA > __pyx_v_AA); if (__pyx_t_1) {
120: dA = AA
/* "_distortion.pyx":120 * while AA > 0: * if dA > AA: * dA = AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = -1 * box[i , h] += sign * dA */ __pyx_v_dA = __pyx_v_AA;
121: AA = -1
/* "_distortion.pyx":121 * if dA > AA: * dA = AA * AA = -1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* box[i , h] += sign * dA * AA -= dA */ __pyx_v_AA = -1.0; goto __pyx_L19; } __pyx_L19:;
122: box[i , h] += sign * dA
/* "_distortion.pyx":122 * dA = AA * AA = -1 * box[i , h] += sign * dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA -= dA * h += 1 */ __pyx_t_8 = __pyx_v_i; __pyx_t_9 = __pyx_v_h; *((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_box.data + __pyx_t_8 * __pyx_v_box.strides[0]) ) + __pyx_t_9 * __pyx_v_box.strides[1]) )) += (__pyx_v_sign * __pyx_v_dA);
123: AA -= dA
/* "_distortion.pyx":123 * AA = -1 * box[i , h] += sign * dA * AA -= dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h += 1 * # Section Pn->B */ __pyx_v_AA = (__pyx_v_AA - __pyx_v_dA);
124: h += 1
/* "_distortion.pyx":124 * box[i , h] += sign * dA * AA -= dA * h += 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* # Section Pn->B * P = floor(stop) */ __pyx_v_h = (__pyx_v_h + 1); } goto __pyx_L16; } __pyx_L16:; }
125: # Section Pn->B
126: P = floor(stop)
/* "_distortion.pyx":126 * h += 1 * # Section Pn->B * P = floor(stop) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dP = stop - P * if dP > 0: */ __pyx_v_P = floor(__pyx_v_stop);
127: dP = stop - P
/* "_distortion.pyx":127 * # Section Pn->B * P = floor(stop) * dP = stop - P #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if dP > 0: * A = calc_area(P, stop, slope, intercept) */ __pyx_v_dP = (__pyx_v_stop - __pyx_v_P);
128: if dP > 0:
/* "_distortion.pyx":128 * P = floor(stop) * dP = stop - P * if dP > 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* A = calc_area(P, stop, slope, intercept) * if A != 0: */ __pyx_t_1 = (__pyx_v_dP > 0.0); if (__pyx_t_1) {
129: A = calc_area(P, stop, slope, intercept)
/* "_distortion.pyx":129 * dP = stop - P * if dP > 0: * A = calc_area(P, stop, slope, intercept) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if A != 0: * AA = fabs(A) */ __pyx_v_A = __pyx_f_11_distortion_calc_area(__pyx_v_P, __pyx_v_stop, __pyx_v_slope, __pyx_v_intercept, 0);
130: if A != 0:
/* "_distortion.pyx":130 * if dP > 0: * A = calc_area(P, stop, slope, intercept) * if A != 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = fabs(A) * sign = A / AA */ __pyx_t_1 = (__pyx_v_A != 0.0); if (__pyx_t_1) {
131: AA = fabs(A)
/* "_distortion.pyx":131 * A = calc_area(P, stop, slope, intercept) * if A != 0: * AA = fabs(A) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* sign = A / AA * h = 0 */ __pyx_v_AA = fabs(__pyx_v_A);
132: sign = A / AA
/* "_distortion.pyx":132 * if A != 0: * AA = fabs(A) * sign = A / AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h = 0 * dA = fabs(dP) */ __pyx_v_sign = (__pyx_v_A / __pyx_v_AA);
133: h = 0
/* "_distortion.pyx":133 * AA = fabs(A) * sign = A / AA * h = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = fabs(dP) * while AA > 0: */ __pyx_v_h = 0;
134: dA = fabs(dP)
/* "_distortion.pyx":134 * sign = A / AA * h = 0 * dA = fabs(dP) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* while AA > 0: * if dA > AA: */ __pyx_v_dA = fabs(__pyx_v_dP);
135: while AA > 0:
/* "_distortion.pyx":135 * h = 0 * dA = fabs(dP) * while AA > 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if dA > AA: * dA = AA */ while (1) { __pyx_t_1 = (__pyx_v_AA > 0.0); if (!__pyx_t_1) break;
136: if dA > AA:
/* "_distortion.pyx":136 * dA = fabs(dP) * while AA > 0: * if dA > AA: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = AA * AA = -1 */ __pyx_t_1 = (__pyx_v_dA > __pyx_v_AA); if (__pyx_t_1) {
137: dA = AA
/* "_distortion.pyx":137 * while AA > 0: * if dA > AA: * dA = AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = -1 * box[(<
int> floor(P)), h] += sign * dA */ __pyx_v_dA = __pyx_v_AA;
138: AA = -1
/* "_distortion.pyx":138 * if dA > AA: * dA = AA * AA = -1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* box[(<
int> floor(P)), h] += sign * dA * AA -= dA */ __pyx_v_AA = -1.0; goto __pyx_L24; } __pyx_L24:;
139: box[(<int> floor(P)), h] += sign * dA
/* "_distortion.pyx":139 * dA = AA * AA = -1 * box[(<
int> floor(P)), h] += sign * dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA -= dA * h += 1 */ __pyx_t_6 = ((int)floor(__pyx_v_P)); __pyx_t_7 = __pyx_v_h; *((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_box.data + __pyx_t_6 * __pyx_v_box.strides[0]) ) + __pyx_t_7 * __pyx_v_box.strides[1]) )) += (__pyx_v_sign * __pyx_v_dA);
140: AA -= dA
/* "_distortion.pyx":140 * AA = -1 * box[(<
int> floor(P)), h] += sign * dA * AA -= dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h += 1 * elif start > stop: # negative contribution. Nota is start=stop: no contribution */ __pyx_v_AA = (__pyx_v_AA - __pyx_v_dA);
141: h += 1
/* "_distortion.pyx":141 * box[(<
int> floor(P)), h] += sign * dA * AA -= dA * h += 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* elif start > stop: # negative contribution. Nota is start=stop: no contribution * P = floor(start) */ __pyx_v_h = (__pyx_v_h + 1); } goto __pyx_L21; } __pyx_L21:; goto __pyx_L20; } __pyx_L20:; } __pyx_L4:; goto __pyx_L3; }
142: elif start > stop: # negative contribution. Nota is start=stop: no contribution
/* "_distortion.pyx":142 * AA -= dA * h += 1 * elif start > stop: # negative contribution. Nota is start=stop: no contribution #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* P = floor(start) * if stop > P: # start and stop are in the same unit */ __pyx_t_1 = (__pyx_v_start > __pyx_v_stop); if (__pyx_t_1) {
143: P = floor(start)
/* "_distortion.pyx":143 * h += 1 * elif start > stop: # negative contribution. Nota is start=stop: no contribution * P = floor(start) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if stop > P: # start and stop are in the same unit * A = calc_area(start, stop, slope, intercept) */ __pyx_v_P = floor(__pyx_v_start);
144: if stop > P: # start and stop are in the same unit
/* "_distortion.pyx":144 * elif start > stop: # negative contribution. Nota is start=stop: no contribution * P = floor(start) * if stop > P: # start and stop are in the same unit #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* A = calc_area(start, stop, slope, intercept) * if A != 0: */ __pyx_t_1 = (__pyx_v_stop > __pyx_v_P); if (__pyx_t_1) {
145: A = calc_area(start, stop, slope, intercept)
/* "_distortion.pyx":145 * P = floor(start) * if stop > P: # start and stop are in the same unit * A = calc_area(start, stop, slope, intercept) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if A != 0: * AA = fabs(A) */ __pyx_v_A = __pyx_f_11_distortion_calc_area(__pyx_v_start, __pyx_v_stop, __pyx_v_slope, __pyx_v_intercept, 0);
146: if A != 0:
/* "_distortion.pyx":146 * if stop > P: # start and stop are in the same unit * A = calc_area(start, stop, slope, intercept) * if A != 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = fabs(A) * sign = A / AA */ __pyx_t_1 = (__pyx_v_A != 0.0); if (__pyx_t_1) {
147: AA = fabs(A)
/* "_distortion.pyx":147 * A = calc_area(start, stop, slope, intercept) * if A != 0: * AA = fabs(A) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* sign = A / AA * dA = (start - stop) # always positive */ __pyx_v_AA = fabs(__pyx_v_A);
148: sign = A / AA
/* "_distortion.pyx":148 * if A != 0: * AA = fabs(A) * sign = A / AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = (start - stop) # always positive * h = 0 */ __pyx_v_sign = (__pyx_v_A / __pyx_v_AA);
149: dA = (start - stop) # always positive
/* "_distortion.pyx":149 * AA = fabs(A) * sign = A / AA * dA = (start - stop) # always positive #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h = 0 * while AA > 0: */ __pyx_v_dA = (__pyx_v_start - __pyx_v_stop);
150: h = 0
/* "_distortion.pyx":150 * sign = A / AA * dA = (start - stop) # always positive * h = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* while AA > 0: * if dA > AA: */ __pyx_v_h = 0;
151: while AA > 0:
/* "_distortion.pyx":151 * dA = (start - stop) # always positive * h = 0 * while AA > 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if dA > AA: * dA = AA */ while (1) { __pyx_t_1 = (__pyx_v_AA > 0.0); if (!__pyx_t_1) break;
152: if dA > AA:
/* "_distortion.pyx":152 * h = 0 * while AA > 0: * if dA > AA: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = AA * AA = -1 */ __pyx_t_1 = (__pyx_v_dA > __pyx_v_AA); if (__pyx_t_1) {
153: dA = AA
/* "_distortion.pyx":153 * while AA > 0: * if dA > AA: * dA = AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = -1 * box[(<
int> floor(start)), h] += sign * dA */ __pyx_v_dA = __pyx_v_AA;
154: AA = -1
/* "_distortion.pyx":154 * if dA > AA: * dA = AA * AA = -1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* box[(<
int> floor(start)), h] += sign * dA * AA -= dA */ __pyx_v_AA = -1.0; goto __pyx_L29; } __pyx_L29:;
155: box[(<int> floor(start)), h] += sign * dA
/* "_distortion.pyx":155 * dA = AA * AA = -1 * box[(<
int> floor(start)), h] += sign * dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA -= dA * h += 1 */ __pyx_t_10 = ((int)floor(__pyx_v_start)); __pyx_t_11 = __pyx_v_h; *((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_box.data + __pyx_t_10 * __pyx_v_box.strides[0]) ) + __pyx_t_11 * __pyx_v_box.strides[1]) )) += (__pyx_v_sign * __pyx_v_dA);
156: AA -= dA
/* "_distortion.pyx":156 * AA = -1 * box[(<
int> floor(start)), h] += sign * dA * AA -= dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h += 1 * else: */ __pyx_v_AA = (__pyx_v_AA - __pyx_v_dA);
157: h += 1
/* "_distortion.pyx":157 * box[(<
int> floor(start)), h] += sign * dA * AA -= dA * h += 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* else: * dP = P - start */ __pyx_v_h = (__pyx_v_h + 1); } goto __pyx_L26; } __pyx_L26:; goto __pyx_L25; } /*else*/ {
158: else:
159: dP = P - start
/* "_distortion.pyx":159 * h += 1 * else: * dP = P - start #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if dP<
0: * A = calc_area(start, P, slope, intercept) */ __pyx_v_dP = (__pyx_v_P - __pyx_v_start);
160: if dP < 0:
/* "_distortion.pyx":160 * else: * dP = P - start * if dP<
0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* A = calc_area(start, P, slope, intercept) * if A != 0: */ __pyx_t_1 = (__pyx_v_dP<
0.0); if (__pyx_t_1) {
161: A = calc_area(start, P, slope, intercept)
/* "_distortion.pyx":161 * dP = P - start * if dP<
0: * A = calc_area(start, P, slope, intercept) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if A != 0: * AA = fabs(A) */ __pyx_v_A = __pyx_f_11_distortion_calc_area(__pyx_v_start, __pyx_v_P, __pyx_v_slope, __pyx_v_intercept, 0);
162: if A != 0:
/* "_distortion.pyx":162 * if dP<
0: * A = calc_area(start, P, slope, intercept) * if A != 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = fabs(A) * sign = A / AA */ __pyx_t_1 = (__pyx_v_A != 0.0); if (__pyx_t_1) {
163: AA = fabs(A)
/* "_distortion.pyx":163 * A = calc_area(start, P, slope, intercept) * if A != 0: * AA = fabs(A) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* sign = A / AA * h = 0 */ __pyx_v_AA = fabs(__pyx_v_A);
164: sign = A / AA
/* "_distortion.pyx":164 * if A != 0: * AA = fabs(A) * sign = A / AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h = 0 * dA = fabs(dP) */ __pyx_v_sign = (__pyx_v_A / __pyx_v_AA);
165: h = 0
/* "_distortion.pyx":165 * AA = fabs(A) * sign = A / AA * h = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = fabs(dP) * while AA > 0: */ __pyx_v_h = 0;
166: dA = fabs(dP)
/* "_distortion.pyx":166 * sign = A / AA * h = 0 * dA = fabs(dP) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* while AA > 0: * if dA > AA: */ __pyx_v_dA = fabs(__pyx_v_dP);
167: while AA > 0:
/* "_distortion.pyx":167 * h = 0 * dA = fabs(dP) * while AA > 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if dA > AA: * dA = AA */ while (1) { __pyx_t_1 = (__pyx_v_AA > 0.0); if (!__pyx_t_1) break;
168: if dA > AA:
/* "_distortion.pyx":168 * dA = fabs(dP) * while AA > 0: * if dA > AA: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = AA * AA = -1 */ __pyx_t_1 = (__pyx_v_dA > __pyx_v_AA); if (__pyx_t_1) {
169: dA = AA
/* "_distortion.pyx":169 * while AA > 0: * if dA > AA: * dA = AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = -1 * box[(<
int> floor(P)) , h] += sign * dA */ __pyx_v_dA = __pyx_v_AA;
170: AA = -1
/* "_distortion.pyx":170 * if dA > AA: * dA = AA * AA = -1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* box[(<
int> floor(P)) , h] += sign * dA * AA -= dA */ __pyx_v_AA = -1.0; goto __pyx_L34; } __pyx_L34:;
171: box[(<int> floor(P)) , h] += sign * dA
/* "_distortion.pyx":171 * dA = AA * AA = -1 * box[(<
int> floor(P)) , h] += sign * dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA -= dA * h += 1 */ __pyx_t_12 = ((int)floor(__pyx_v_P)); __pyx_t_13 = __pyx_v_h; *((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_box.data + __pyx_t_12 * __pyx_v_box.strides[0]) ) + __pyx_t_13 * __pyx_v_box.strides[1]) )) += (__pyx_v_sign * __pyx_v_dA);
172: AA -= dA
/* "_distortion.pyx":172 * AA = -1 * box[(<
int> floor(P)) , h] += sign * dA * AA -= dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h += 1 * # subsection P1->Pn */ __pyx_v_AA = (__pyx_v_AA - __pyx_v_dA);
173: h += 1
/* "_distortion.pyx":173 * box[(<
int> floor(P)) , h] += sign * dA * AA -= dA * h += 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* # subsection P1->Pn * for i in range((<
int> start), (<
int> ceil(stop)), -1): */ __pyx_v_h = (__pyx_v_h + 1); } goto __pyx_L31; } __pyx_L31:; goto __pyx_L30; } __pyx_L30:;
174: # subsection P1->Pn
175: for i in range((<int> start), (<int> ceil(stop)), -1):
/* "_distortion.pyx":175 * h += 1 * # subsection P1->Pn * for i in range((<
int> start), (<
int> ceil(stop)), -1): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* A = calc_area(i, i - 1, slope, intercept) * if A != 0: */ __pyx_t_14 = ((int)ceil(__pyx_v_stop)); for (__pyx_t_15 = ((int)__pyx_v_start); __pyx_t_15 > __pyx_t_14; __pyx_t_15-=1) { __pyx_v_i = __pyx_t_15;
176: A = calc_area(i, i - 1, slope, intercept)
/* "_distortion.pyx":176 * # subsection P1->Pn * for i in range((<
int> start), (<
int> ceil(stop)), -1): * A = calc_area(i, i - 1, slope, intercept) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if A != 0: * AA = fabs(A) */ __pyx_v_A = __pyx_f_11_distortion_calc_area(__pyx_v_i, (__pyx_v_i - 1), __pyx_v_slope, __pyx_v_intercept, 0);
177: if A != 0:
/* "_distortion.pyx":177 * for i in range((<
int> start), (<
int> ceil(stop)), -1): * A = calc_area(i, i - 1, slope, intercept) * if A != 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = fabs(A) * sign = A / AA */ __pyx_t_1 = (__pyx_v_A != 0.0); if (__pyx_t_1) {
178: AA = fabs(A)
/* "_distortion.pyx":178 * A = calc_area(i, i - 1, slope, intercept) * if A != 0: * AA = fabs(A) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* sign = A / AA * h = 0 */ __pyx_v_AA = fabs(__pyx_v_A);
179: sign = A / AA
/* "_distortion.pyx":179 * if A != 0: * AA = fabs(A) * sign = A / AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h = 0 * dA = 1 */ __pyx_v_sign = (__pyx_v_A / __pyx_v_AA);
180: h = 0
/* "_distortion.pyx":180 * AA = fabs(A) * sign = A / AA * h = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = 1 * while AA > 0: */ __pyx_v_h = 0;
181: dA = 1
/* "_distortion.pyx":181 * sign = A / AA * h = 0 * dA = 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* while AA > 0: * if dA > AA: */ __pyx_v_dA = 1.0;
182: while AA > 0:
/* "_distortion.pyx":182 * h = 0 * dA = 1 * while AA > 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if dA > AA: * dA = AA */ while (1) { __pyx_t_1 = (__pyx_v_AA > 0.0); if (!__pyx_t_1) break;
183: if dA > AA:
/* "_distortion.pyx":183 * dA = 1 * while AA > 0: * if dA > AA: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = AA * AA = -1 */ __pyx_t_1 = (__pyx_v_dA > __pyx_v_AA); if (__pyx_t_1) {
184: dA = AA
/* "_distortion.pyx":184 * while AA > 0: * if dA > AA: * dA = AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = -1 * box[i - 1 , h] += sign * dA */ __pyx_v_dA = __pyx_v_AA;
185: AA = -1
/* "_distortion.pyx":185 * if dA > AA: * dA = AA * AA = -1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* box[i - 1 , h] += sign * dA * AA -= dA */ __pyx_v_AA = -1.0; goto __pyx_L40; } __pyx_L40:;
186: box[i - 1 , h] += sign * dA
/* "_distortion.pyx":186 * dA = AA * AA = -1 * box[i - 1 , h] += sign * dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA -= dA * h += 1 */ __pyx_t_16 = (__pyx_v_i - 1); __pyx_t_17 = __pyx_v_h; *((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_box.data + __pyx_t_16 * __pyx_v_box.strides[0]) ) + __pyx_t_17 * __pyx_v_box.strides[1]) )) += (__pyx_v_sign * __pyx_v_dA);
187: AA -= dA
/* "_distortion.pyx":187 * AA = -1 * box[i - 1 , h] += sign * dA * AA -= dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h += 1 * # Section Pn->B */ __pyx_v_AA = (__pyx_v_AA - __pyx_v_dA);
188: h += 1
/* "_distortion.pyx":188 * box[i - 1 , h] += sign * dA * AA -= dA * h += 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* # Section Pn->B * P = ceil(stop) */ __pyx_v_h = (__pyx_v_h + 1); } goto __pyx_L37; } __pyx_L37:; }
189: # Section Pn->B
190: P = ceil(stop)
/* "_distortion.pyx":190 * h += 1 * # Section Pn->B * P = ceil(stop) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dP = stop - P * if dP<
0: */ __pyx_v_P = ceil(__pyx_v_stop);
191: dP = stop - P
/* "_distortion.pyx":191 * # Section Pn->B * P = ceil(stop) * dP = stop - P #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if dP<
0: * A = calc_area(P, stop, slope, intercept) */ __pyx_v_dP = (__pyx_v_stop - __pyx_v_P);
192: if dP < 0:
/* "_distortion.pyx":192 * P = ceil(stop) * dP = stop - P * if dP<
0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* A = calc_area(P, stop, slope, intercept) * if A != 0: */ __pyx_t_1 = (__pyx_v_dP<
0.0); if (__pyx_t_1) {
193: A = calc_area(P, stop, slope, intercept)
/* "_distortion.pyx":193 * dP = stop - P * if dP<
0: * A = calc_area(P, stop, slope, intercept) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if A != 0: * AA = fabs(A) */ __pyx_v_A = __pyx_f_11_distortion_calc_area(__pyx_v_P, __pyx_v_stop, __pyx_v_slope, __pyx_v_intercept, 0);
194: if A != 0:
/* "_distortion.pyx":194 * if dP<
0: * A = calc_area(P, stop, slope, intercept) * if A != 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = fabs(A) * sign = A / AA */ __pyx_t_1 = (__pyx_v_A != 0.0); if (__pyx_t_1) {
195: AA = fabs(A)
/* "_distortion.pyx":195 * A = calc_area(P, stop, slope, intercept) * if A != 0: * AA = fabs(A) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* sign = A / AA * h = 0 */ __pyx_v_AA = fabs(__pyx_v_A);
196: sign = A / AA
/* "_distortion.pyx":196 * if A != 0: * AA = fabs(A) * sign = A / AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h = 0 * dA = fabs(dP) */ __pyx_v_sign = (__pyx_v_A / __pyx_v_AA);
197: h = 0
/* "_distortion.pyx":197 * AA = fabs(A) * sign = A / AA * h = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = fabs(dP) * while AA > 0: */ __pyx_v_h = 0;
198: dA = fabs(dP)
/* "_distortion.pyx":198 * sign = A / AA * h = 0 * dA = fabs(dP) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* while AA > 0: * if dA > AA: */ __pyx_v_dA = fabs(__pyx_v_dP);
199: while AA > 0:
/* "_distortion.pyx":199 * h = 0 * dA = fabs(dP) * while AA > 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if dA > AA: * dA = AA; AA = -1 */ while (1) { __pyx_t_1 = (__pyx_v_AA > 0.0); if (!__pyx_t_1) break;
200: if dA > AA:
/* "_distortion.pyx":200 * dA = fabs(dP) * while AA > 0: * if dA > AA: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = AA; AA = -1 * box[(<
int> floor(stop)), h] += sign * dA */ __pyx_t_1 = (__pyx_v_dA > __pyx_v_AA); if (__pyx_t_1) {
201: dA = AA; AA = -1
/* "_distortion.pyx":201 * while AA > 0: * if dA > AA: * dA = AA; AA = -1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* box[(<
int> floor(stop)), h] += sign * dA * AA -= dA */ __pyx_v_dA = __pyx_v_AA; __pyx_v_AA = -1.0; goto __pyx_L45; } __pyx_L45:;
202: box[(<int> floor(stop)), h] += sign * dA
/* "_distortion.pyx":202 * if dA > AA: * dA = AA; AA = -1 * box[(<
int> floor(stop)), h] += sign * dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA -= dA * h += 1 */ __pyx_t_14 = ((int)floor(__pyx_v_stop)); __pyx_t_15 = __pyx_v_h; *((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_box.data + __pyx_t_14 * __pyx_v_box.strides[0]) ) + __pyx_t_15 * __pyx_v_box.strides[1]) )) += (__pyx_v_sign * __pyx_v_dA);
203: AA -= dA
/* "_distortion.pyx":203 * dA = AA; AA = -1 * box[(<
int> floor(stop)), h] += sign * dA * AA -= dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h += 1 * */ __pyx_v_AA = (__pyx_v_AA - __pyx_v_dA);
204: h += 1
/* "_distortion.pyx":204 * box[(<
int> floor(stop)), h] += sign * dA * AA -= dA * h += 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * cdef class Quad: */ __pyx_v_h = (__pyx_v_h + 1); } goto __pyx_L42; } __pyx_L42:; goto __pyx_L41; } __pyx_L41:; } __pyx_L25:; goto __pyx_L3; } __pyx_L3:; } /* Python wrapper */ static int __pyx_pw_11_distortion_4Quad_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_11_distortion_4Quad_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_buffer = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__buffer,0}; PyObject* values[1] = {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 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buffer)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__")<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); } __pyx_v_buffer = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(values[0]); if (unlikely(!__pyx_v_buffer.memview)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("_distortion.Quad.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11_distortion_4Quad___cinit__(((struct __pyx_obj_11_distortion_Quad *)__pyx_v_self), __pyx_v_buffer); __Pyx_RefNannyFinishContext(); return __pyx_r; }
205:
206: cdef class Quad:
/* "_distortion.pyx":206 * h += 1 * * cdef class Quad: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* """ * Basic quadrilatere object */ struct __pyx_obj_11_distortion_Quad { PyObject_HEAD struct __pyx_vtabstruct_11_distortion_Quad *__pyx_vtab; __Pyx_memviewslice box; float A0; float A1; float B0; float B1; float C0; float C1; float D0; float D1; float pAB; float pBC; float pCD; float pDA; float cAB; float cBC; float cCD; float cDA; float area; int offset0; int offset1; int box_size0; int box_size1; int has_area; int has_slope; }; /* "_distortion.pyx":206 * h += 1 * * cdef class Quad: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* """ * Basic quadrilatere object */ struct __pyx_vtabstruct_11_distortion_Quad { float (*get_box)(struct __pyx_obj_11_distortion_Quad *, int, int, int __pyx_skip_dispatch); int (*get_offset0)(struct __pyx_obj_11_distortion_Quad *, int __pyx_skip_dispatch); int (*get_offset1)(struct __pyx_obj_11_distortion_Quad *, int __pyx_skip_dispatch); int (*get_box_size0)(struct __pyx_obj_11_distortion_Quad *, int __pyx_skip_dispatch); int (*get_box_size1)(struct __pyx_obj_11_distortion_Quad *, int __pyx_skip_dispatch); PyObject *(*init_slope)(struct __pyx_obj_11_distortion_Quad *, int __pyx_skip_dispatch); float (*calc_area_AB)(struct __pyx_obj_11_distortion_Quad *, float, float, int __pyx_skip_dispatch); float (*calc_area_BC)(struct __pyx_obj_11_distortion_Quad *, float, float, int __pyx_skip_dispatch); float (*calc_area_CD)(struct __pyx_obj_11_distortion_Quad *, float, float, int __pyx_skip_dispatch); float (*calc_area_DA)(struct __pyx_obj_11_distortion_Quad *, float, float, int __pyx_skip_dispatch); float (*calc_area)(struct __pyx_obj_11_distortion_Quad *, int __pyx_skip_dispatch); }; static struct __pyx_vtabstruct_11_distortion_Quad *__pyx_vtabptr_11_distortion_Quad;
207: """
208: Basic quadrilatere object
209:
210: |
211: |
212: | xxxxxA
213: | xxxxxxxI'xxxxxxxx x
214: xxxxxxxxIxxxxxx | x
215: Bxxxxxxxxxxxx | | x
216: x | | x
217: x | | x
218: x | | x
219: x | | x
220: x | | x
221: x | | x
222: x | | x
223: x | | x
224: x | | x
225: x | | x
226: x O| P A' x
227: -----------------J------------------+--------------------------------L-----------------------
228: x | x
229: x | x
230: x | x
231: x | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxD
232: CxxxxxxxxxxxxxxxxxKxxxxx
233: |
234: |
235: |
236: |
237: """
238: cdef float[:,:] box
239: cdef float A0, A1, B0, B1, C0, C1, D0, D1, pAB, pBC, pCD, pDA, cAB, cBC, cCD, cDA, area
240: cdef int offset0, offset1, box_size0, box_size1
241: cdef bint has_area, has_slope
242:
243: def __cinit__(self, float[:,:] buffer):
/* "_distortion.pyx":243 * cdef bint has_area, has_slope * * def __cinit__(self, float[:,:] buffer): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.box = buffer * self.A0 = self.A1 = 0 */ static int __pyx_pf_11_distortion_4Quad___cinit__(struct __pyx_obj_11_distortion_Quad *__pyx_v_self, __Pyx_memviewslice __pyx_v_buffer) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__", 0);
244: self.box = buffer
/* "_distortion.pyx":244 * * def __cinit__(self, float[:,:] buffer): * self.box = buffer #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.A0 = self.A1 = 0 * self.B0 = self.B1 = 0 */ __PYX_XDEC_MEMVIEW(&__pyx_v_self->box, 0); __PYX_INC_MEMVIEW(&__pyx_v_buffer, 0); __pyx_v_self->box = __pyx_v_buffer;
245: self.A0 = self.A1 = 0
/* "_distortion.pyx":245 * def __cinit__(self, float[:,:] buffer): * self.box = buffer * self.A0 = self.A1 = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.B0 = self.B1 = 0 * self.C0 = self.C1 = 0 */ __pyx_v_self->A0 = 0; __pyx_v_self->A1 = 0;
246: self.B0 = self.B1 = 0
/* "_distortion.pyx":246 * self.box = buffer * self.A0 = self.A1 = 0 * self.B0 = self.B1 = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.C0 = self.C1 = 0 * self.D0 = self.D1 = 0 */ __pyx_v_self->B0 = 0; __pyx_v_self->B1 = 0;
247: self.C0 = self.C1 = 0
/* "_distortion.pyx":247 * self.A0 = self.A1 = 0 * self.B0 = self.B1 = 0 * self.C0 = self.C1 = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.D0 = self.D1 = 0 * self.offset0 = self.offset1 = 0 */ __pyx_v_self->C0 = 0; __pyx_v_self->C1 = 0;
248: self.D0 = self.D1 = 0
/* "_distortion.pyx":248 * self.B0 = self.B1 = 0 * self.C0 = self.C1 = 0 * self.D0 = self.D1 = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.offset0 = self.offset1 = 0 * self.box_size0 = self.box_size1 = 0 */ __pyx_v_self->D0 = 0; __pyx_v_self->D1 = 0;
249: self.offset0 = self.offset1 = 0
/* "_distortion.pyx":249 * self.C0 = self.C1 = 0 * self.D0 = self.D1 = 0 * self.offset0 = self.offset1 = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.box_size0 = self.box_size1 = 0 * self.pAB = self.pBC = self.pCD = self.pDA = 0 */ __pyx_v_self->offset0 = 0; __pyx_v_self->offset1 = 0;
250: self.box_size0 = self.box_size1 = 0
/* "_distortion.pyx":250 * self.D0 = self.D1 = 0 * self.offset0 = self.offset1 = 0 * self.box_size0 = self.box_size1 = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.pAB = self.pBC = self.pCD = self.pDA = 0 * self.cAB = self.cBC = self.cCD = self.cDA = 0 */ __pyx_v_self->box_size0 = 0; __pyx_v_self->box_size1 = 0;
251: self.pAB = self.pBC = self.pCD = self.pDA = 0
/* "_distortion.pyx":251 * self.offset0 = self.offset1 = 0 * self.box_size0 = self.box_size1 = 0 * self.pAB = self.pBC = self.pCD = self.pDA = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.cAB = self.cBC = self.cCD = self.cDA = 0 * self.area = 0 */ __pyx_v_self->pAB = 0; __pyx_v_self->pBC = 0; __pyx_v_self->pCD = 0; __pyx_v_self->pDA = 0;
252: self.cAB = self.cBC = self.cCD = self.cDA = 0
/* "_distortion.pyx":252 * self.box_size0 = self.box_size1 = 0 * self.pAB = self.pBC = self.pCD = self.pDA = 0 * self.cAB = self.cBC = self.cCD = self.cDA = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.area = 0 * self.has_area=0 */ __pyx_v_self->cAB = 0; __pyx_v_self->cBC = 0; __pyx_v_self->cCD = 0; __pyx_v_self->cDA = 0;
253: self.area = 0
/* "_distortion.pyx":253 * self.pAB = self.pBC = self.pCD = self.pDA = 0 * self.cAB = self.cBC = self.cCD = self.cDA = 0 * self.area = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.has_area=0 * self.has_slope=0 */ __pyx_v_self->area = 0.0;
254: self.has_area=0
/* "_distortion.pyx":254 * self.cAB = self.cBC = self.cCD = self.cDA = 0 * self.area = 0 * self.has_area=0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.has_slope=0 * */ __pyx_v_self->has_area = 0;
255: self.has_slope=0
/* "_distortion.pyx":255 * self.area = 0 * self.has_area=0 * self.has_slope=0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * */ __pyx_v_self->has_slope = 0; __pyx_r = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_buffer, 1); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11_distortion_4Quad_3reinit(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_11_distortion_4Quad_3reinit(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_A0 = 0; PyObject *__pyx_v_A1 = 0; PyObject *__pyx_v_B0 = 0; PyObject *__pyx_v_B1 = 0; PyObject *__pyx_v_C0 = 0; PyObject *__pyx_v_C1 = 0; PyObject *__pyx_v_D0 = 0; PyObject *__pyx_v_D1 = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("reinit (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__A0,&__pyx_n_s__A1,&__pyx_n_s__B0,&__pyx_n_s__B1,&__pyx_n_s__C0,&__pyx_n_s__C1,&__pyx_n_s__D0,&__pyx_n_s__D1,0}; PyObject* values[8] = {0,0,0,0,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 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__A0)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__A1)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("reinit", 1, 8, 8, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 2: if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__B0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("reinit", 1, 8, 8, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 3: if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__B1)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("reinit", 1, 8, 8, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 4: if (likely((values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__C0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("reinit", 1, 8, 8, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 5: if (likely((values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__C1)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("reinit", 1, 8, 8, 5); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 6: if (likely((values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__D0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("reinit", 1, 8, 8, 6); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 7: if (likely((values[7] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__D1)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("reinit", 1, 8, 8, 7); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "reinit")<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else if (PyTuple_GET_SIZE(__pyx_args) != 8) { 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); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[5] = PyTuple_GET_ITEM(__pyx_args, 5); values[6] = PyTuple_GET_ITEM(__pyx_args, 6); values[7] = PyTuple_GET_ITEM(__pyx_args, 7); } __pyx_v_A0 = values[0]; __pyx_v_A1 = values[1]; __pyx_v_B0 = values[2]; __pyx_v_B1 = values[3]; __pyx_v_C0 = values[4]; __pyx_v_C1 = values[5]; __pyx_v_D0 = values[6]; __pyx_v_D1 = values[7]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("reinit", 1, 8, 8, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("_distortion.Quad.reinit", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11_distortion_4Quad_2reinit(((struct __pyx_obj_11_distortion_Quad *)__pyx_v_self), __pyx_v_A0, __pyx_v_A1, __pyx_v_B0, __pyx_v_B1, __pyx_v_C0, __pyx_v_C1, __pyx_v_D0, __pyx_v_D1); __Pyx_RefNannyFinishContext(); return __pyx_r; }
256:
257:
258: def reinit(self, A0, A1, B0, B1, C0, C1, D0, D1):
/* "_distortion.pyx":258 * * * def reinit(self, A0, A1, B0, B1, C0, C1, D0, D1): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.box[:, :] = 0.0 * self.A0 = A0 */ static PyObject *__pyx_pf_11_distortion_4Quad_2reinit(struct __pyx_obj_11_distortion_Quad *__pyx_v_self, PyObject *__pyx_v_A0, PyObject *__pyx_v_A1, PyObject *__pyx_v_B0, PyObject *__pyx_v_B1, PyObject *__pyx_v_C0, PyObject *__pyx_v_C1, PyObject *__pyx_v_D0, PyObject *__pyx_v_D1) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("reinit", 0);
259: self.box[:, :] = 0.0
/* "_distortion.pyx":259 * * def reinit(self, A0, A1, B0, B1, C0, C1, D0, D1): * self.box[:, :] = 0.0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.A0 = A0 * self.A1 = A1 */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_t_1 = __pyx_v_self->box; __PYX_INC_MEMVIEW(&__pyx_t_1, 1); __pyx_t_3 = -1; __pyx_t_2.data = __pyx_t_1.data; __pyx_t_2.memview = __pyx_t_1.memview; __PYX_INC_MEMVIEW(&__pyx_t_2, 0); __pyx_t_2.shape[0] = __pyx_t_1.shape[0]; __pyx_t_2.strides[0] = __pyx_t_1.strides[0]; __pyx_t_2.suboffsets[0] = -1; __pyx_t_2.shape[1] = __pyx_t_1.shape[1]; __pyx_t_2.strides[1] = __pyx_t_1.strides[1]; __pyx_t_2.suboffsets[1] = -1; __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1); { float __pyx_temp_scalar = 0.0; { Py_ssize_t __pyx_temp_extent_0 = __pyx_t_2.shape[0]; Py_ssize_t __pyx_temp_stride_0 = __pyx_t_2.strides[0]; char *__pyx_temp_pointer_0; Py_ssize_t __pyx_temp_idx_0; Py_ssize_t __pyx_temp_extent_1 = __pyx_t_2.shape[1]; Py_ssize_t __pyx_temp_stride_1 = __pyx_t_2.strides[1]; char *__pyx_temp_pointer_1; Py_ssize_t __pyx_temp_idx_1; __pyx_temp_pointer_0 = __pyx_t_2.data; for (__pyx_temp_idx_0 = 0; __pyx_temp_idx_0<
__pyx_temp_extent_0; __pyx_temp_idx_0++) { __pyx_temp_pointer_1 = __pyx_temp_pointer_0; for (__pyx_temp_idx_1 = 0; __pyx_temp_idx_1<
__pyx_temp_extent_1; __pyx_temp_idx_1++) { *((float *) __pyx_temp_pointer_1) = __pyx_temp_scalar; __pyx_temp_pointer_1 += __pyx_temp_stride_1; } __pyx_temp_pointer_0 += __pyx_temp_stride_0; } } } __PYX_XDEC_MEMVIEW(&__pyx_t_2, 1);
260: self.A0 = A0
/* "_distortion.pyx":260 * def reinit(self, A0, A1, B0, B1, C0, C1, D0, D1): * self.box[:, :] = 0.0 * self.A0 = A0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.A1 = A1 * self.B0 = B0 */ __pyx_t_4 = __pyx_PyFloat_AsFloat(__pyx_v_A0); if (unlikely((__pyx_t_4 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_self->A0 = __pyx_t_4;
261: self.A1 = A1
/* "_distortion.pyx":261 * self.box[:, :] = 0.0 * self.A0 = A0 * self.A1 = A1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.B0 = B0 * self.B1 = B1 */ __pyx_t_4 = __pyx_PyFloat_AsFloat(__pyx_v_A1); if (unlikely((__pyx_t_4 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_self->A1 = __pyx_t_4;
262: self.B0 = B0
/* "_distortion.pyx":262 * self.A0 = A0 * self.A1 = A1 * self.B0 = B0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.B1 = B1 * self.C0 = C0 */ __pyx_t_4 = __pyx_PyFloat_AsFloat(__pyx_v_B0); if (unlikely((__pyx_t_4 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_self->B0 = __pyx_t_4;
263: self.B1 = B1
/* "_distortion.pyx":263 * self.A1 = A1 * self.B0 = B0 * self.B1 = B1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.C0 = C0 * self.C1 = C1 */ __pyx_t_4 = __pyx_PyFloat_AsFloat(__pyx_v_B1); if (unlikely((__pyx_t_4 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_self->B1 = __pyx_t_4;
264: self.C0 = C0
/* "_distortion.pyx":264 * self.B0 = B0 * self.B1 = B1 * self.C0 = C0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.C1 = C1 * self.D0 = D0 */ __pyx_t_4 = __pyx_PyFloat_AsFloat(__pyx_v_C0); if (unlikely((__pyx_t_4 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_self->C0 = __pyx_t_4;
265: self.C1 = C1
/* "_distortion.pyx":265 * self.B1 = B1 * self.C0 = C0 * self.C1 = C1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.D0 = D0 * self.D1 = D1 */ __pyx_t_4 = __pyx_PyFloat_AsFloat(__pyx_v_C1); if (unlikely((__pyx_t_4 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_self->C1 = __pyx_t_4;
266: self.D0 = D0
/* "_distortion.pyx":266 * self.C0 = C0 * self.C1 = C1 * self.D0 = D0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.D1 = D1 * self.offset0 = (<
int> floor(min(self.A0, self.B0, self.C0, self.D0))) */ __pyx_t_4 = __pyx_PyFloat_AsFloat(__pyx_v_D0); if (unlikely((__pyx_t_4 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_self->D0 = __pyx_t_4;
267: self.D1 = D1
/* "_distortion.pyx":267 * self.C1 = C1 * self.D0 = D0 * self.D1 = D1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.offset0 = (<
int> floor(min(self.A0, self.B0, self.C0, self.D0))) * self.offset1 = (<
int> floor(min(self.A1, self.B1, self.C1, self.D1))) */ __pyx_t_4 = __pyx_PyFloat_AsFloat(__pyx_v_D1); if (unlikely((__pyx_t_4 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_self->D1 = __pyx_t_4;
268: self.offset0 = (<int> floor(min(self.A0, self.B0, self.C0, self.D0)))
/* "_distortion.pyx":268 * self.D0 = D0 * self.D1 = D1 * self.offset0 = (<
int> floor(min(self.A0, self.B0, self.C0, self.D0))) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.offset1 = (<
int> floor(min(self.A1, self.B1, self.C1, self.D1))) * self.box_size0 = (<
int> ceil(max(self.A0, self.B0, self.C0, self.D0))) - self.offset0 */ __pyx_t_4 = __pyx_v_self->B0; __pyx_t_5 = __pyx_v_self->C0; __pyx_t_6 = __pyx_v_self->D0; __pyx_t_7 = __pyx_v_self->A0; if ((__pyx_t_4<
__pyx_t_7)) { __pyx_t_8 = __pyx_t_4; } else { __pyx_t_8 = __pyx_t_7; } __pyx_t_7 = __pyx_t_8; if ((__pyx_t_5<
__pyx_t_7)) { __pyx_t_8 = __pyx_t_5; } else { __pyx_t_8 = __pyx_t_7; } __pyx_t_7 = __pyx_t_8; if ((__pyx_t_6<
__pyx_t_7)) { __pyx_t_8 = __pyx_t_6; } else { __pyx_t_8 = __pyx_t_7; } __pyx_v_self->offset0 = ((int)floor(__pyx_t_8));
269: self.offset1 = (<int> floor(min(self.A1, self.B1, self.C1, self.D1)))
/* "_distortion.pyx":269 * self.D1 = D1 * self.offset0 = (<
int> floor(min(self.A0, self.B0, self.C0, self.D0))) * self.offset1 = (<
int> floor(min(self.A1, self.B1, self.C1, self.D1))) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.box_size0 = (<
int> ceil(max(self.A0, self.B0, self.C0, self.D0))) - self.offset0 * self.box_size1 = (<
int> ceil(max(self.A1, self.B1, self.C1, self.D1))) - self.offset1 */ __pyx_t_8 = __pyx_v_self->B1; __pyx_t_4 = __pyx_v_self->C1; __pyx_t_5 = __pyx_v_self->D1; __pyx_t_6 = __pyx_v_self->A1; if ((__pyx_t_8<
__pyx_t_6)) { __pyx_t_7 = __pyx_t_8; } else { __pyx_t_7 = __pyx_t_6; } __pyx_t_6 = __pyx_t_7; if ((__pyx_t_4<
__pyx_t_6)) { __pyx_t_7 = __pyx_t_4; } else { __pyx_t_7 = __pyx_t_6; } __pyx_t_6 = __pyx_t_7; if ((__pyx_t_5<
__pyx_t_6)) { __pyx_t_7 = __pyx_t_5; } else { __pyx_t_7 = __pyx_t_6; } __pyx_v_self->offset1 = ((int)floor(__pyx_t_7));
270: self.box_size0 = (<int> ceil(max(self.A0, self.B0, self.C0, self.D0))) - self.offset0
/* "_distortion.pyx":270 * self.offset0 = (<
int> floor(min(self.A0, self.B0, self.C0, self.D0))) * self.offset1 = (<
int> floor(min(self.A1, self.B1, self.C1, self.D1))) * self.box_size0 = (<
int> ceil(max(self.A0, self.B0, self.C0, self.D0))) - self.offset0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.box_size1 = (<
int> ceil(max(self.A1, self.B1, self.C1, self.D1))) - self.offset1 * self.A0 -= self.offset0 */ __pyx_t_7 = __pyx_v_self->B0; __pyx_t_8 = __pyx_v_self->C0; __pyx_t_4 = __pyx_v_self->D0; __pyx_t_5 = __pyx_v_self->A0; if ((__pyx_t_7 > __pyx_t_5)) { __pyx_t_6 = __pyx_t_7; } else { __pyx_t_6 = __pyx_t_5; } __pyx_t_5 = __pyx_t_6; if ((__pyx_t_8 > __pyx_t_5)) { __pyx_t_6 = __pyx_t_8; } else { __pyx_t_6 = __pyx_t_5; } __pyx_t_5 = __pyx_t_6; if ((__pyx_t_4 > __pyx_t_5)) { __pyx_t_6 = __pyx_t_4; } else { __pyx_t_6 = __pyx_t_5; } __pyx_v_self->box_size0 = (((int)ceil(__pyx_t_6)) - __pyx_v_self->offset0);
271: self.box_size1 = (<int> ceil(max(self.A1, self.B1, self.C1, self.D1))) - self.offset1
/* "_distortion.pyx":271 * self.offset1 = (<
int> floor(min(self.A1, self.B1, self.C1, self.D1))) * self.box_size0 = (<
int> ceil(max(self.A0, self.B0, self.C0, self.D0))) - self.offset0 * self.box_size1 = (<
int> ceil(max(self.A1, self.B1, self.C1, self.D1))) - self.offset1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.A0 -= self.offset0 * self.A1 -= self.offset1 */ __pyx_t_6 = __pyx_v_self->B1; __pyx_t_7 = __pyx_v_self->C1; __pyx_t_8 = __pyx_v_self->D1; __pyx_t_4 = __pyx_v_self->A1; if ((__pyx_t_6 > __pyx_t_4)) { __pyx_t_5 = __pyx_t_6; } else { __pyx_t_5 = __pyx_t_4; } __pyx_t_4 = __pyx_t_5; if ((__pyx_t_7 > __pyx_t_4)) { __pyx_t_5 = __pyx_t_7; } else { __pyx_t_5 = __pyx_t_4; } __pyx_t_4 = __pyx_t_5; if ((__pyx_t_8 > __pyx_t_4)) { __pyx_t_5 = __pyx_t_8; } else { __pyx_t_5 = __pyx_t_4; } __pyx_v_self->box_size1 = (((int)ceil(__pyx_t_5)) - __pyx_v_self->offset1);
272: self.A0 -= self.offset0
/* "_distortion.pyx":272 * self.box_size0 = (<
int> ceil(max(self.A0, self.B0, self.C0, self.D0))) - self.offset0 * self.box_size1 = (<
int> ceil(max(self.A1, self.B1, self.C1, self.D1))) - self.offset1 * self.A0 -= self.offset0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.A1 -= self.offset1 * self.B0 -= self.offset0 */ __pyx_v_self->A0 = (__pyx_v_self->A0 - __pyx_v_self->offset0);
273: self.A1 -= self.offset1
/* "_distortion.pyx":273 * self.box_size1 = (<
int> ceil(max(self.A1, self.B1, self.C1, self.D1))) - self.offset1 * self.A0 -= self.offset0 * self.A1 -= self.offset1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.B0 -= self.offset0 * self.B1 -= self.offset1 */ __pyx_v_self->A1 = (__pyx_v_self->A1 - __pyx_v_self->offset1);
274: self.B0 -= self.offset0
/* "_distortion.pyx":274 * self.A0 -= self.offset0 * self.A1 -= self.offset1 * self.B0 -= self.offset0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.B1 -= self.offset1 * self.C0 -= self.offset0 */ __pyx_v_self->B0 = (__pyx_v_self->B0 - __pyx_v_self->offset0);
275: self.B1 -= self.offset1
/* "_distortion.pyx":275 * self.A1 -= self.offset1 * self.B0 -= self.offset0 * self.B1 -= self.offset1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.C0 -= self.offset0 * self.C1 -= self.offset1 */ __pyx_v_self->B1 = (__pyx_v_self->B1 - __pyx_v_self->offset1);
276: self.C0 -= self.offset0
/* "_distortion.pyx":276 * self.B0 -= self.offset0 * self.B1 -= self.offset1 * self.C0 -= self.offset0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.C1 -= self.offset1 * self.D0 -= self.offset0 */ __pyx_v_self->C0 = (__pyx_v_self->C0 - __pyx_v_self->offset0);
277: self.C1 -= self.offset1
/* "_distortion.pyx":277 * self.B1 -= self.offset1 * self.C0 -= self.offset0 * self.C1 -= self.offset1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.D0 -= self.offset0 * self.D1 -= self.offset1 */ __pyx_v_self->C1 = (__pyx_v_self->C1 - __pyx_v_self->offset1);
278: self.D0 -= self.offset0
/* "_distortion.pyx":278 * self.C0 -= self.offset0 * self.C1 -= self.offset1 * self.D0 -= self.offset0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.D1 -= self.offset1 * self.pAB = self.pBC = self.pCD = self.pDA = 0 */ __pyx_v_self->D0 = (__pyx_v_self->D0 - __pyx_v_self->offset0);
279: self.D1 -= self.offset1
/* "_distortion.pyx":279 * self.C1 -= self.offset1 * self.D0 -= self.offset0 * self.D1 -= self.offset1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.pAB = self.pBC = self.pCD = self.pDA = 0 * self.cAB = self.cBC = self.cCD = self.cDA = 0 */ __pyx_v_self->D1 = (__pyx_v_self->D1 - __pyx_v_self->offset1);
280: self.pAB = self.pBC = self.pCD = self.pDA = 0
/* "_distortion.pyx":280 * self.D0 -= self.offset0 * self.D1 -= self.offset1 * self.pAB = self.pBC = self.pCD = self.pDA = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.cAB = self.cBC = self.cCD = self.cDA = 0 * self.area = 0 */ __pyx_v_self->pAB = 0; __pyx_v_self->pBC = 0; __pyx_v_self->pCD = 0; __pyx_v_self->pDA = 0;
281: self.cAB = self.cBC = self.cCD = self.cDA = 0
/* "_distortion.pyx":281 * self.D1 -= self.offset1 * self.pAB = self.pBC = self.pCD = self.pDA = 0 * self.cAB = self.cBC = self.cCD = self.cDA = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.area = 0 * self.has_area = 0 */ __pyx_v_self->cAB = 0; __pyx_v_self->cBC = 0; __pyx_v_self->cCD = 0; __pyx_v_self->cDA = 0;
282: self.area = 0
/* "_distortion.pyx":282 * self.pAB = self.pBC = self.pCD = self.pDA = 0 * self.cAB = self.cBC = self.cCD = self.cDA = 0 * self.area = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.has_area = 0 * self.has_slope = 0 */ __pyx_v_self->area = 0.0;
283: self.has_area = 0
/* "_distortion.pyx":283 * self.cAB = self.cBC = self.cCD = self.cDA = 0 * self.area = 0 * self.has_area = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.has_slope = 0 * */ __pyx_v_self->has_area = 0;
284: self.has_slope = 0
/* "_distortion.pyx":284 * self.area = 0 * self.has_area = 0 * self.has_slope = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * def __repr__(self): */ __pyx_v_self->has_slope = 0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_2, 1); __Pyx_AddTraceback("_distortion.Quad.reinit", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11_distortion_4Quad_5__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_11_distortion_4Quad_5__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_11_distortion_4Quad_4__repr__(((struct __pyx_obj_11_distortion_Quad *)__pyx_v_self)); __Pyx_RefNannyFinishContext(); return __pyx_r; }
285:
286: def __repr__(self):
/* "_distortion.pyx":286 * self.has_slope = 0 * * def __repr__(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* res = ["offset %i,%i size %i, %i" % (self.offset0, self.offset1, self.box_size0, self.box_size1), "box:"] * for i in range(self.box_size0): */ static PyObject *__pyx_pf_11_distortion_4Quad_4__repr__(struct __pyx_obj_11_distortion_Quad *__pyx_v_self) { PyObject *__pyx_v_res = NULL; int __pyx_v_i; PyObject *__pyx_v_line = NULL; int __pyx_v_j; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__", 0);
287: res = ["offset %i,%i size %i, %i" % (self.offset0, self.offset1, self.box_size0, self.box_size1), "box:"]
/* "_distortion.pyx":287 * * def __repr__(self): * res = ["offset %i,%i size %i, %i" % (self.offset0, self.offset1, self.box_size0, self.box_size1), "box:"] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* for i in range(self.box_size0): * line="" */ __pyx_t_1 = PyInt_FromLong(__pyx_v_self->offset0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromLong(__pyx_v_self->offset1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyInt_FromLong(__pyx_v_self->box_size0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyInt_FromLong(__pyx_v_self->box_size1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_1), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_4)); __Pyx_GIVEREF(((PyObject *)__pyx_t_4)); __Pyx_INCREF(((PyObject *)__pyx_kp_s_2)); PyList_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_kp_s_2)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_2)); __pyx_t_4 = 0; __pyx_v_res = __pyx_t_5; __pyx_t_5 = 0;
288: for i in range(self.box_size0):
/* "_distortion.pyx":288 * def __repr__(self): * res = ["offset %i,%i size %i, %i" % (self.offset0, self.offset1, self.box_size0, self.box_size1), "box:"] * for i in range(self.box_size0): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* line="" * for j in range(self.box_size1): */ __pyx_t_6 = __pyx_v_self->box_size0; for (__pyx_t_7 = 0; __pyx_t_7<
__pyx_t_6; __pyx_t_7+=1) { __pyx_v_i = __pyx_t_7;
289: line=""
/* "_distortion.pyx":289 * res = ["offset %i,%i size %i, %i" % (self.offset0, self.offset1, self.box_size0, self.box_size1), "box:"] * for i in range(self.box_size0): * line="" #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* for j in range(self.box_size1): * line+="\t%.3f"%self.box[i,j] */ __Pyx_INCREF(((PyObject *)__pyx_kp_s_3)); __Pyx_XDECREF(__pyx_v_line); __pyx_v_line = ((PyObject *)__pyx_kp_s_3);
290: for j in range(self.box_size1):
/* "_distortion.pyx":290 * for i in range(self.box_size0): * line="" * for j in range(self.box_size1): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* line+="\t%.3f"%self.box[i,j] * res.append(line) */ __pyx_t_8 = __pyx_v_self->box_size1; for (__pyx_t_9 = 0; __pyx_t_9<
__pyx_t_8; __pyx_t_9+=1) { __pyx_v_j = __pyx_t_9;
291: line+="\t%.3f"%self.box[i,j]
/* "_distortion.pyx":291 * line="" * for j in range(self.box_size1): * line+="\t%.3f"%self.box[i,j] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* res.append(line) * return os.linesep.join(res) */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_t_10 = __pyx_v_i; __pyx_t_11 = __pyx_v_j; __pyx_t_12 = -1; if (__pyx_t_10<
0) { __pyx_t_10 += __pyx_v_self->box.shape[0]; if (unlikely(__pyx_t_10<
0)) __pyx_t_12 = 0; } else if (unlikely(__pyx_t_10 >= __pyx_v_self->box.shape[0])) __pyx_t_12 = 0; if (__pyx_t_11<
0) { __pyx_t_11 += __pyx_v_self->box.shape[1]; if (unlikely(__pyx_t_11<
0)) __pyx_t_12 = 1; } else if (unlikely(__pyx_t_11 >= __pyx_v_self->box.shape[1])) __pyx_t_12 = 1; if (unlikely(__pyx_t_12 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_12); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_5 = PyFloat_FromDouble((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_self->box.data + __pyx_t_10 * __pyx_v_self->box.strides[0]) ) + __pyx_t_11 * __pyx_v_self->box.strides[1]) )))); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_4), __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_line, ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_v_line); __pyx_v_line = __pyx_t_5; __pyx_t_5 = 0; }
292: res.append(line)
/* "_distortion.pyx":292 * for j in range(self.box_size1): * line+="\t%.3f"%self.box[i,j] * res.append(line) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return os.linesep.join(res) * */ __pyx_t_13 = PyList_Append(__pyx_v_res, __pyx_v_line); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }
293: return os.linesep.join(res)
/* "_distortion.pyx":293 * line+="\t%.3f"%self.box[i,j] * res.append(line) * return os.linesep.join(res) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * cpdef float get_box(self, int i, int j): */ __Pyx_XDECREF(__pyx_r); __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__os); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__linesep); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__join); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_v_res)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_res)); __Pyx_GIVEREF(((PyObject *)__pyx_v_res)); __pyx_t_3 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("_distortion.Quad.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_res); __Pyx_XDECREF(__pyx_v_line); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
294:
295: cpdef float get_box(self, int i, int j):
/* "_distortion.pyx":295 * return os.linesep.join(res) * * cpdef float get_box(self, int i, int j): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return self.box[i,j] * cpdef int get_offset0(self): */ static PyObject *__pyx_pw_11_distortion_4Quad_7get_box(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static float __pyx_f_11_distortion_4Quad_get_box(struct __pyx_obj_11_distortion_Quad *__pyx_v_self, int __pyx_v_i, int __pyx_v_j, int __pyx_skip_dispatch) { float __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_box", 0); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overriden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__get_box); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_11_distortion_4Quad_7get_box)) { __pyx_t_2 = PyInt_FromLong(__pyx_v_i); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyInt_FromLong(__pyx_v_j); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_t_5 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_5; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "_distortion.pyx":295 * return os.linesep.join(res) * * cpdef float get_box(self, int i, int j): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return self.box[i,j] * cpdef int get_offset0(self): */ static PyObject *__pyx_pf_11_distortion_4Quad_6get_box(struct __pyx_obj_11_distortion_Quad *__pyx_v_self, int __pyx_v_i, int __pyx_v_j) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_box", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(((struct __pyx_vtabstruct_11_distortion_Quad *)__pyx_v_self->__pyx_vtab)->get_box(__pyx_v_self, __pyx_v_i, __pyx_v_j, 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("_distortion.Quad.get_box", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
296: return self.box[i,j]
/* "_distortion.pyx":296 * * cpdef float get_box(self, int i, int j): * return self.box[i,j] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cpdef int get_offset0(self): * return self.offset0 */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_t_6 = __pyx_v_i; __pyx_t_7 = __pyx_v_j; __pyx_t_8 = -1; if (__pyx_t_6<
0) { __pyx_t_6 += __pyx_v_self->box.shape[0]; if (unlikely(__pyx_t_6<
0)) __pyx_t_8 = 0; } else if (unlikely(__pyx_t_6 >= __pyx_v_self->box.shape[0])) __pyx_t_8 = 0; if (__pyx_t_7<
0) { __pyx_t_7 += __pyx_v_self->box.shape[1]; if (unlikely(__pyx_t_7<
0)) __pyx_t_8 = 1; } else if (unlikely(__pyx_t_7 >= __pyx_v_self->box.shape[1])) __pyx_t_8 = 1; if (unlikely(__pyx_t_8 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_8); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_r = (*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_self->box.data + __pyx_t_6 * __pyx_v_self->box.strides[0]) ) + __pyx_t_7 * __pyx_v_self->box.strides[1]) ))); goto __pyx_L0; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_WriteUnraisable("_distortion.Quad.get_box", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11_distortion_4Quad_7get_box(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_11_distortion_4Quad_7get_box(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { int __pyx_v_i; int __pyx_v_j; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_box (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__i,&__pyx_n_s__j,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); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__i)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__j)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("get_box", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_box")<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __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_i = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_i == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_j = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_j == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("get_box", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("_distortion.Quad.get_box", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11_distortion_4Quad_6get_box(((struct __pyx_obj_11_distortion_Quad *)__pyx_v_self), __pyx_v_i, __pyx_v_j); __Pyx_RefNannyFinishContext(); return __pyx_r; }
297: cpdef int get_offset0(self):
/* "_distortion.pyx":297 * cpdef float get_box(self, int i, int j): * return self.box[i,j] * cpdef int get_offset0(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return self.offset0 * cpdef int get_offset1(self): */ static PyObject *__pyx_pw_11_distortion_4Quad_9get_offset0(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static int __pyx_f_11_distortion_4Quad_get_offset0(struct __pyx_obj_11_distortion_Quad *__pyx_v_self, int __pyx_skip_dispatch) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_offset0", 0); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overriden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__get_offset0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 297; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_11_distortion_4Quad_9get_offset0)) { __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 297; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyInt_AsInt(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 297; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "_distortion.pyx":297 * cpdef float get_box(self, int i, int j): * return self.box[i,j] * cpdef int get_offset0(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return self.offset0 * cpdef int get_offset1(self): */ static PyObject *__pyx_pf_11_distortion_4Quad_8get_offset0(struct __pyx_obj_11_distortion_Quad *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_offset0", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromLong(((struct __pyx_vtabstruct_11_distortion_Quad *)__pyx_v_self->__pyx_vtab)->get_offset0(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 297; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("_distortion.Quad.get_offset0", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
298: return self.offset0
/* "_distortion.pyx":298 * return self.box[i,j] * cpdef int get_offset0(self): * return self.offset0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cpdef int get_offset1(self): * return self.offset1 */ __pyx_r = __pyx_v_self->offset0; goto __pyx_L0; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_WriteUnraisable("_distortion.Quad.get_offset0", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11_distortion_4Quad_9get_offset0(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_11_distortion_4Quad_9get_offset0(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_offset0 (wrapper)", 0); __pyx_r = __pyx_pf_11_distortion_4Quad_8get_offset0(((struct __pyx_obj_11_distortion_Quad *)__pyx_v_self)); __Pyx_RefNannyFinishContext(); return __pyx_r; }
299: cpdef int get_offset1(self):
/* "_distortion.pyx":299 * cpdef int get_offset0(self): * return self.offset0 * cpdef int get_offset1(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return self.offset1 * cpdef int get_box_size0(self): */ static PyObject *__pyx_pw_11_distortion_4Quad_11get_offset1(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static int __pyx_f_11_distortion_4Quad_get_offset1(struct __pyx_obj_11_distortion_Quad *__pyx_v_self, int __pyx_skip_dispatch) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_offset1", 0); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overriden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__get_offset1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_11_distortion_4Quad_11get_offset1)) { __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyInt_AsInt(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "_distortion.pyx":299 * cpdef int get_offset0(self): * return self.offset0 * cpdef int get_offset1(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return self.offset1 * cpdef int get_box_size0(self): */ static PyObject *__pyx_pf_11_distortion_4Quad_10get_offset1(struct __pyx_obj_11_distortion_Quad *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_offset1", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromLong(((struct __pyx_vtabstruct_11_distortion_Quad *)__pyx_v_self->__pyx_vtab)->get_offset1(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("_distortion.Quad.get_offset1", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
300: return self.offset1
/* "_distortion.pyx":300 * return self.offset0 * cpdef int get_offset1(self): * return self.offset1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cpdef int get_box_size0(self): * return self.box_size0 */ __pyx_r = __pyx_v_self->offset1; goto __pyx_L0; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_WriteUnraisable("_distortion.Quad.get_offset1", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11_distortion_4Quad_11get_offset1(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_11_distortion_4Quad_11get_offset1(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_offset1 (wrapper)", 0); __pyx_r = __pyx_pf_11_distortion_4Quad_10get_offset1(((struct __pyx_obj_11_distortion_Quad *)__pyx_v_self)); __Pyx_RefNannyFinishContext(); return __pyx_r; }
301: cpdef int get_box_size0(self):
/* "_distortion.pyx":301 * cpdef int get_offset1(self): * return self.offset1 * cpdef int get_box_size0(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return self.box_size0 * cpdef int get_box_size1(self): */ static PyObject *__pyx_pw_11_distortion_4Quad_13get_box_size0(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static int __pyx_f_11_distortion_4Quad_get_box_size0(struct __pyx_obj_11_distortion_Quad *__pyx_v_self, int __pyx_skip_dispatch) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_box_size0", 0); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overriden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__get_box_size0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_11_distortion_4Quad_13get_box_size0)) { __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyInt_AsInt(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "_distortion.pyx":301 * cpdef int get_offset1(self): * return self.offset1 * cpdef int get_box_size0(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return self.box_size0 * cpdef int get_box_size1(self): */ static PyObject *__pyx_pf_11_distortion_4Quad_12get_box_size0(struct __pyx_obj_11_distortion_Quad *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_box_size0", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromLong(((struct __pyx_vtabstruct_11_distortion_Quad *)__pyx_v_self->__pyx_vtab)->get_box_size0(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("_distortion.Quad.get_box_size0", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
302: return self.box_size0
/* "_distortion.pyx":302 * return self.offset1 * cpdef int get_box_size0(self): * return self.box_size0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cpdef int get_box_size1(self): * return self.box_size1 */ __pyx_r = __pyx_v_self->box_size0; goto __pyx_L0; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_WriteUnraisable("_distortion.Quad.get_box_size0", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11_distortion_4Quad_13get_box_size0(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_11_distortion_4Quad_13get_box_size0(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_box_size0 (wrapper)", 0); __pyx_r = __pyx_pf_11_distortion_4Quad_12get_box_size0(((struct __pyx_obj_11_distortion_Quad *)__pyx_v_self)); __Pyx_RefNannyFinishContext(); return __pyx_r; }
303: cpdef int get_box_size1(self):
/* "_distortion.pyx":303 * cpdef int get_box_size0(self): * return self.box_size0 * cpdef int get_box_size1(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return self.box_size1 * */ static PyObject *__pyx_pw_11_distortion_4Quad_15get_box_size1(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static int __pyx_f_11_distortion_4Quad_get_box_size1(struct __pyx_obj_11_distortion_Quad *__pyx_v_self, int __pyx_skip_dispatch) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_box_size1", 0); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overriden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__get_box_size1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_11_distortion_4Quad_15get_box_size1)) { __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyInt_AsInt(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "_distortion.pyx":303 * cpdef int get_box_size0(self): * return self.box_size0 * cpdef int get_box_size1(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return self.box_size1 * */ static PyObject *__pyx_pf_11_distortion_4Quad_14get_box_size1(struct __pyx_obj_11_distortion_Quad *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_box_size1", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromLong(((struct __pyx_vtabstruct_11_distortion_Quad *)__pyx_v_self->__pyx_vtab)->get_box_size1(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("_distortion.Quad.get_box_size1", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
304: return self.box_size1
/* "_distortion.pyx":304 * return self.box_size0 * cpdef int get_box_size1(self): * return self.box_size1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * cpdef init_slope(self): */ __pyx_r = __pyx_v_self->box_size1; goto __pyx_L0; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_WriteUnraisable("_distortion.Quad.get_box_size1", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11_distortion_4Quad_15get_box_size1(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_11_distortion_4Quad_15get_box_size1(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_box_size1 (wrapper)", 0); __pyx_r = __pyx_pf_11_distortion_4Quad_14get_box_size1(((struct __pyx_obj_11_distortion_Quad *)__pyx_v_self)); __Pyx_RefNannyFinishContext(); return __pyx_r; }
305:
306: cpdef init_slope(self):
/* "_distortion.pyx":306 * return self.box_size1 * * cpdef init_slope(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if not self.has_slope: * if self.B0 != self.A0: */ static PyObject *__pyx_pw_11_distortion_4Quad_17init_slope(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_f_11_distortion_4Quad_init_slope(struct __pyx_obj_11_distortion_Quad *__pyx_v_self, int __pyx_skip_dispatch) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("init_slope", 0); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overriden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__init_slope); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_11_distortion_4Quad_17init_slope)) { __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "_distortion.pyx":306 * return self.box_size1 * * cpdef init_slope(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if not self.has_slope: * if self.B0 != self.A0: */ static PyObject *__pyx_pf_11_distortion_4Quad_16init_slope(struct __pyx_obj_11_distortion_Quad *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("init_slope", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((struct __pyx_vtabstruct_11_distortion_Quad *)__pyx_v_self->__pyx_vtab)->init_slope(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("_distortion.Quad.init_slope", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
307: if not self.has_slope:
/* "_distortion.pyx":307 * * cpdef init_slope(self): * if not self.has_slope: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.B0 != self.A0: * self.pAB = (self.B1 - self.A1) / (self.B0 - self.A0) */ __pyx_t_3 = (!__pyx_v_self->has_slope); if (__pyx_t_3) {
308: if self.B0 != self.A0:
/* "_distortion.pyx":308 * cpdef init_slope(self): * if not self.has_slope: * if self.B0 != self.A0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.pAB = (self.B1 - self.A1) / (self.B0 - self.A0) * self.cAB = self.A1 - self.pAB * self.A0 */ __pyx_t_3 = (__pyx_v_self->B0 != __pyx_v_self->A0); if (__pyx_t_3) {
309: self.pAB = (self.B1 - self.A1) / (self.B0 - self.A0)
/* "_distortion.pyx":309 * if not self.has_slope: * if self.B0 != self.A0: * self.pAB = (self.B1 - self.A1) / (self.B0 - self.A0) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.cAB = self.A1 - self.pAB * self.A0 * if self.C0 != self.B0: */ __pyx_t_4 = (__pyx_v_self->B1 - __pyx_v_self->A1); __pyx_t_5 = (__pyx_v_self->B0 - __pyx_v_self->A0); if (unlikely(__pyx_t_5 == 0)) { PyErr_Format(PyExc_ZeroDivisionError, "float division"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_v_self->pAB = (__pyx_t_4 / __pyx_t_5);
310: self.cAB = self.A1 - self.pAB * self.A0
/* "_distortion.pyx":310 * if self.B0 != self.A0: * self.pAB = (self.B1 - self.A1) / (self.B0 - self.A0) * self.cAB = self.A1 - self.pAB * self.A0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.C0 != self.B0: * self.pBC = (self.C1 - self.B1) / (self.C0 - self.B0) */ __pyx_v_self->cAB = (__pyx_v_self->A1 - (__pyx_v_self->pAB * __pyx_v_self->A0)); goto __pyx_L4; } __pyx_L4:;
311: if self.C0 != self.B0:
/* "_distortion.pyx":311 * self.pAB = (self.B1 - self.A1) / (self.B0 - self.A0) * self.cAB = self.A1 - self.pAB * self.A0 * if self.C0 != self.B0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.pBC = (self.C1 - self.B1) / (self.C0 - self.B0) * self.cBC = self.B1 - self.pBC * self.B0 */ __pyx_t_3 = (__pyx_v_self->C0 != __pyx_v_self->B0); if (__pyx_t_3) {
312: self.pBC = (self.C1 - self.B1) / (self.C0 - self.B0)
/* "_distortion.pyx":312 * self.cAB = self.A1 - self.pAB * self.A0 * if self.C0 != self.B0: * self.pBC = (self.C1 - self.B1) / (self.C0 - self.B0) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.cBC = self.B1 - self.pBC * self.B0 * if self.D0 != self.C0: */ __pyx_t_5 = (__pyx_v_self->C1 - __pyx_v_self->B1); __pyx_t_4 = (__pyx_v_self->C0 - __pyx_v_self->B0); if (unlikely(__pyx_t_4 == 0)) { PyErr_Format(PyExc_ZeroDivisionError, "float division"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_v_self->pBC = (__pyx_t_5 / __pyx_t_4);
313: self.cBC = self.B1 - self.pBC * self.B0
/* "_distortion.pyx":313 * if self.C0 != self.B0: * self.pBC = (self.C1 - self.B1) / (self.C0 - self.B0) * self.cBC = self.B1 - self.pBC * self.B0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.D0 != self.C0: * self.pCD = (self.D1 - self.C1) / (self.D0 - self.C0) */ __pyx_v_self->cBC = (__pyx_v_self->B1 - (__pyx_v_self->pBC * __pyx_v_self->B0)); goto __pyx_L5; } __pyx_L5:;
314: if self.D0 != self.C0:
/* "_distortion.pyx":314 * self.pBC = (self.C1 - self.B1) / (self.C0 - self.B0) * self.cBC = self.B1 - self.pBC * self.B0 * if self.D0 != self.C0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.pCD = (self.D1 - self.C1) / (self.D0 - self.C0) * self.cCD = self.C1 - self.pCD * self.C0 */ __pyx_t_3 = (__pyx_v_self->D0 != __pyx_v_self->C0); if (__pyx_t_3) {
315: self.pCD = (self.D1 - self.C1) / (self.D0 - self.C0)
/* "_distortion.pyx":315 * self.cBC = self.B1 - self.pBC * self.B0 * if self.D0 != self.C0: * self.pCD = (self.D1 - self.C1) / (self.D0 - self.C0) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.cCD = self.C1 - self.pCD * self.C0 * if self.A0 != self.D0: */ __pyx_t_4 = (__pyx_v_self->D1 - __pyx_v_self->C1); __pyx_t_5 = (__pyx_v_self->D0 - __pyx_v_self->C0); if (unlikely(__pyx_t_5 == 0)) { PyErr_Format(PyExc_ZeroDivisionError, "float division"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_v_self->pCD = (__pyx_t_4 / __pyx_t_5);
316: self.cCD = self.C1 - self.pCD * self.C0
/* "_distortion.pyx":316 * if self.D0 != self.C0: * self.pCD = (self.D1 - self.C1) / (self.D0 - self.C0) * self.cCD = self.C1 - self.pCD * self.C0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.A0 != self.D0: * self.pDA = (self.A1 - self.D1) / (self.A0 - self.D0) */ __pyx_v_self->cCD = (__pyx_v_self->C1 - (__pyx_v_self->pCD * __pyx_v_self->C0)); goto __pyx_L6; } __pyx_L6:;
317: if self.A0 != self.D0:
/* "_distortion.pyx":317 * self.pCD = (self.D1 - self.C1) / (self.D0 - self.C0) * self.cCD = self.C1 - self.pCD * self.C0 * if self.A0 != self.D0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.pDA = (self.A1 - self.D1) / (self.A0 - self.D0) * self.cDA = self.D1 - self.pDA * self.D0 */ __pyx_t_3 = (__pyx_v_self->A0 != __pyx_v_self->D0); if (__pyx_t_3) {
318: self.pDA = (self.A1 - self.D1) / (self.A0 - self.D0)
/* "_distortion.pyx":318 * self.cCD = self.C1 - self.pCD * self.C0 * if self.A0 != self.D0: * self.pDA = (self.A1 - self.D1) / (self.A0 - self.D0) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.cDA = self.D1 - self.pDA * self.D0 * self.has_slope = 1 */ __pyx_t_5 = (__pyx_v_self->A1 - __pyx_v_self->D1); __pyx_t_4 = (__pyx_v_self->A0 - __pyx_v_self->D0); if (unlikely(__pyx_t_4 == 0)) { PyErr_Format(PyExc_ZeroDivisionError, "float division"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_v_self->pDA = (__pyx_t_5 / __pyx_t_4);
319: self.cDA = self.D1 - self.pDA * self.D0
/* "_distortion.pyx":319 * if self.A0 != self.D0: * self.pDA = (self.A1 - self.D1) / (self.A0 - self.D0) * self.cDA = self.D1 - self.pDA * self.D0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.has_slope = 1 * */ __pyx_v_self->cDA = (__pyx_v_self->D1 - (__pyx_v_self->pDA * __pyx_v_self->D0)); goto __pyx_L7; } __pyx_L7:;
320: self.has_slope = 1
/* "_distortion.pyx":320 * self.pDA = (self.A1 - self.D1) / (self.A0 - self.D0) * self.cDA = self.D1 - self.pDA * self.D0 * self.has_slope = 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * cpdef float calc_area_AB(self, float I1,float I2): */ __pyx_v_self->has_slope = 1; goto __pyx_L3; } __pyx_L3:; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("_distortion.Quad.init_slope", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11_distortion_4Quad_17init_slope(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_11_distortion_4Quad_17init_slope(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("init_slope (wrapper)", 0); __pyx_r = __pyx_pf_11_distortion_4Quad_16init_slope(((struct __pyx_obj_11_distortion_Quad *)__pyx_v_self)); __Pyx_RefNannyFinishContext(); return __pyx_r; }
321:
322: cpdef float calc_area_AB(self, float I1,float I2):
/* "_distortion.pyx":322 * self.has_slope = 1 * * cpdef float calc_area_AB(self, float I1,float I2): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.B0 != self.A0: * return 0.5 * (I2 - I1) * (self.pAB * (I2 + I1) + 2 * self.cAB) */ static PyObject *__pyx_pw_11_distortion_4Quad_19calc_area_AB(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static float __pyx_f_11_distortion_4Quad_calc_area_AB(struct __pyx_obj_11_distortion_Quad *__pyx_v_self, float __pyx_v_I1, float __pyx_v_I2, int __pyx_skip_dispatch) { float __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("calc_area_AB", 0); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overriden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__calc_area_AB); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_11_distortion_4Quad_19calc_area_AB)) { __pyx_t_2 = PyFloat_FromDouble(__pyx_v_I1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_I2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_t_5 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_5; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "_distortion.pyx":322 * self.has_slope = 1 * * cpdef float calc_area_AB(self, float I1,float I2): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.B0 != self.A0: * return 0.5 * (I2 - I1) * (self.pAB * (I2 + I1) + 2 * self.cAB) */ static PyObject *__pyx_pf_11_distortion_4Quad_18calc_area_AB(struct __pyx_obj_11_distortion_Quad *__pyx_v_self, float __pyx_v_I1, float __pyx_v_I2) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("calc_area_AB", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(((struct __pyx_vtabstruct_11_distortion_Quad *)__pyx_v_self->__pyx_vtab)->calc_area_AB(__pyx_v_self, __pyx_v_I1, __pyx_v_I2, 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("_distortion.Quad.calc_area_AB", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
323: if self.B0 != self.A0:
/* "_distortion.pyx":323 * * cpdef float calc_area_AB(self, float I1,float I2): * if self.B0 != self.A0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return 0.5 * (I2 - I1) * (self.pAB * (I2 + I1) + 2 * self.cAB) * else: */ __pyx_t_6 = (__pyx_v_self->B0 != __pyx_v_self->A0); if (__pyx_t_6) {
324: return 0.5 * (I2 - I1) * (self.pAB * (I2 + I1) + 2 * self.cAB)
/* "_distortion.pyx":324 * cpdef float calc_area_AB(self, float I1,float I2): * if self.B0 != self.A0: * return 0.5 * (I2 - I1) * (self.pAB * (I2 + I1) + 2 * self.cAB) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* else: * return 0.0 */ __pyx_r = ((0.5 * (__pyx_v_I2 - __pyx_v_I1)) * ((__pyx_v_self->pAB * (__pyx_v_I2 + __pyx_v_I1)) + (2.0 * __pyx_v_self->cAB))); goto __pyx_L0; goto __pyx_L3; } /*else*/ {
325: else:
326: return 0.0
/* "_distortion.pyx":326 * return 0.5 * (I2 - I1) * (self.pAB * (I2 + I1) + 2 * self.cAB) * else: * return 0.0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * cpdef float calc_area_BC(self, float J1, float J2): */ __pyx_r = 0.0; goto __pyx_L0; } __pyx_L3:; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_WriteUnraisable("_distortion.Quad.calc_area_AB", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11_distortion_4Quad_19calc_area_AB(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_11_distortion_4Quad_19calc_area_AB(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { float __pyx_v_I1; float __pyx_v_I2; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("calc_area_AB (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__I1,&__pyx_n_s__I2,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); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__I1)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__I2)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("calc_area_AB", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calc_area_AB")<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __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_I1 = __pyx_PyFloat_AsFloat(values[0]); if (unlikely((__pyx_v_I1 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_I2 = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_I2 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("calc_area_AB", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("_distortion.Quad.calc_area_AB", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11_distortion_4Quad_18calc_area_AB(((struct __pyx_obj_11_distortion_Quad *)__pyx_v_self), __pyx_v_I1, __pyx_v_I2); __Pyx_RefNannyFinishContext(); return __pyx_r; }
327:
328: cpdef float calc_area_BC(self, float J1, float J2):
/* "_distortion.pyx":328 * return 0.0 * * cpdef float calc_area_BC(self, float J1, float J2): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.B0 != self.C0: * return 0.5 * (J2 - J1) * (self.pBC * (J1 + J2) + 2 * self.cBC) */ static PyObject *__pyx_pw_11_distortion_4Quad_21calc_area_BC(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static float __pyx_f_11_distortion_4Quad_calc_area_BC(struct __pyx_obj_11_distortion_Quad *__pyx_v_self, float __pyx_v_J1, float __pyx_v_J2, int __pyx_skip_dispatch) { float __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("calc_area_BC", 0); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overriden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__calc_area_BC); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_11_distortion_4Quad_21calc_area_BC)) { __pyx_t_2 = PyFloat_FromDouble(__pyx_v_J1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_J2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_t_5 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_5; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "_distortion.pyx":328 * return 0.0 * * cpdef float calc_area_BC(self, float J1, float J2): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.B0 != self.C0: * return 0.5 * (J2 - J1) * (self.pBC * (J1 + J2) + 2 * self.cBC) */ static PyObject *__pyx_pf_11_distortion_4Quad_20calc_area_BC(struct __pyx_obj_11_distortion_Quad *__pyx_v_self, float __pyx_v_J1, float __pyx_v_J2) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("calc_area_BC", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(((struct __pyx_vtabstruct_11_distortion_Quad *)__pyx_v_self->__pyx_vtab)->calc_area_BC(__pyx_v_self, __pyx_v_J1, __pyx_v_J2, 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("_distortion.Quad.calc_area_BC", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
329: if self.B0 != self.C0:
/* "_distortion.pyx":329 * * cpdef float calc_area_BC(self, float J1, float J2): * if self.B0 != self.C0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return 0.5 * (J2 - J1) * (self.pBC * (J1 + J2) + 2 * self.cBC) * else: */ __pyx_t_6 = (__pyx_v_self->B0 != __pyx_v_self->C0); if (__pyx_t_6) {
330: return 0.5 * (J2 - J1) * (self.pBC * (J1 + J2) + 2 * self.cBC)
/* "_distortion.pyx":330 * cpdef float calc_area_BC(self, float J1, float J2): * if self.B0 != self.C0: * return 0.5 * (J2 - J1) * (self.pBC * (J1 + J2) + 2 * self.cBC) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* else: * return 0.0 */ __pyx_r = ((0.5 * (__pyx_v_J2 - __pyx_v_J1)) * ((__pyx_v_self->pBC * (__pyx_v_J1 + __pyx_v_J2)) + (2.0 * __pyx_v_self->cBC))); goto __pyx_L0; goto __pyx_L3; } /*else*/ {
331: else:
332: return 0.0
/* "_distortion.pyx":332 * return 0.5 * (J2 - J1) * (self.pBC * (J1 + J2) + 2 * self.cBC) * else: * return 0.0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * cpdef float calc_area_CD(self, float K1, float K2): */ __pyx_r = 0.0; goto __pyx_L0; } __pyx_L3:; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_WriteUnraisable("_distortion.Quad.calc_area_BC", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11_distortion_4Quad_21calc_area_BC(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_11_distortion_4Quad_21calc_area_BC(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { float __pyx_v_J1; float __pyx_v_J2; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("calc_area_BC (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__J1,&__pyx_n_s__J2,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); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__J1)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__J2)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("calc_area_BC", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calc_area_BC")<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __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_J1 = __pyx_PyFloat_AsFloat(values[0]); if (unlikely((__pyx_v_J1 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_J2 = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_J2 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("calc_area_BC", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("_distortion.Quad.calc_area_BC", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11_distortion_4Quad_20calc_area_BC(((struct __pyx_obj_11_distortion_Quad *)__pyx_v_self), __pyx_v_J1, __pyx_v_J2); __Pyx_RefNannyFinishContext(); return __pyx_r; }
333:
334: cpdef float calc_area_CD(self, float K1, float K2):
/* "_distortion.pyx":334 * return 0.0 * * cpdef float calc_area_CD(self, float K1, float K2): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.C0 != self.D0: * return 0.5 * (K2 - K1) * (self.pCD * (K2 + K1) + 2 * self.cCD) */ static PyObject *__pyx_pw_11_distortion_4Quad_23calc_area_CD(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static float __pyx_f_11_distortion_4Quad_calc_area_CD(struct __pyx_obj_11_distortion_Quad *__pyx_v_self, float __pyx_v_K1, float __pyx_v_K2, int __pyx_skip_dispatch) { float __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("calc_area_CD", 0); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overriden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__calc_area_CD); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_11_distortion_4Quad_23calc_area_CD)) { __pyx_t_2 = PyFloat_FromDouble(__pyx_v_K1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_K2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_t_5 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_5; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "_distortion.pyx":334 * return 0.0 * * cpdef float calc_area_CD(self, float K1, float K2): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.C0 != self.D0: * return 0.5 * (K2 - K1) * (self.pCD * (K2 + K1) + 2 * self.cCD) */ static PyObject *__pyx_pf_11_distortion_4Quad_22calc_area_CD(struct __pyx_obj_11_distortion_Quad *__pyx_v_self, float __pyx_v_K1, float __pyx_v_K2) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("calc_area_CD", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(((struct __pyx_vtabstruct_11_distortion_Quad *)__pyx_v_self->__pyx_vtab)->calc_area_CD(__pyx_v_self, __pyx_v_K1, __pyx_v_K2, 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("_distortion.Quad.calc_area_CD", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
335: if self.C0 != self.D0:
/* "_distortion.pyx":335 * * cpdef float calc_area_CD(self, float K1, float K2): * if self.C0 != self.D0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return 0.5 * (K2 - K1) * (self.pCD * (K2 + K1) + 2 * self.cCD) * else: */ __pyx_t_6 = (__pyx_v_self->C0 != __pyx_v_self->D0); if (__pyx_t_6) {
336: return 0.5 * (K2 - K1) * (self.pCD * (K2 + K1) + 2 * self.cCD)
/* "_distortion.pyx":336 * cpdef float calc_area_CD(self, float K1, float K2): * if self.C0 != self.D0: * return 0.5 * (K2 - K1) * (self.pCD * (K2 + K1) + 2 * self.cCD) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* else: * return 0.0 */ __pyx_r = ((0.5 * (__pyx_v_K2 - __pyx_v_K1)) * ((__pyx_v_self->pCD * (__pyx_v_K2 + __pyx_v_K1)) + (2.0 * __pyx_v_self->cCD))); goto __pyx_L0; goto __pyx_L3; } /*else*/ {
337: else:
338: return 0.0
/* "_distortion.pyx":338 * return 0.5 * (K2 - K1) * (self.pCD * (K2 + K1) + 2 * self.cCD) * else: * return 0.0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * cpdef float calc_area_DA(self,float L1,float L2): */ __pyx_r = 0.0; goto __pyx_L0; } __pyx_L3:; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_WriteUnraisable("_distortion.Quad.calc_area_CD", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11_distortion_4Quad_23calc_area_CD(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_11_distortion_4Quad_23calc_area_CD(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { float __pyx_v_K1; float __pyx_v_K2; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("calc_area_CD (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__K1,&__pyx_n_s__K2,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); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__K1)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__K2)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("calc_area_CD", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calc_area_CD")<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __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_K1 = __pyx_PyFloat_AsFloat(values[0]); if (unlikely((__pyx_v_K1 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_K2 = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_K2 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("calc_area_CD", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("_distortion.Quad.calc_area_CD", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11_distortion_4Quad_22calc_area_CD(((struct __pyx_obj_11_distortion_Quad *)__pyx_v_self), __pyx_v_K1, __pyx_v_K2); __Pyx_RefNannyFinishContext(); return __pyx_r; }
339:
340: cpdef float calc_area_DA(self,float L1,float L2):
/* "_distortion.pyx":340 * return 0.0 * * cpdef float calc_area_DA(self,float L1,float L2): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.D0 != self.A0: * return 0.5 * (L2 - L1) * (self.pDA * (L1 + L2) + 2 * self.cDA) */ static PyObject *__pyx_pw_11_distortion_4Quad_25calc_area_DA(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static float __pyx_f_11_distortion_4Quad_calc_area_DA(struct __pyx_obj_11_distortion_Quad *__pyx_v_self, float __pyx_v_L1, float __pyx_v_L2, int __pyx_skip_dispatch) { float __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("calc_area_DA", 0); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overriden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__calc_area_DA); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_11_distortion_4Quad_25calc_area_DA)) { __pyx_t_2 = PyFloat_FromDouble(__pyx_v_L1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_L2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_t_5 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_5; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "_distortion.pyx":340 * return 0.0 * * cpdef float calc_area_DA(self,float L1,float L2): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.D0 != self.A0: * return 0.5 * (L2 - L1) * (self.pDA * (L1 + L2) + 2 * self.cDA) */ static PyObject *__pyx_pf_11_distortion_4Quad_24calc_area_DA(struct __pyx_obj_11_distortion_Quad *__pyx_v_self, float __pyx_v_L1, float __pyx_v_L2) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("calc_area_DA", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(((struct __pyx_vtabstruct_11_distortion_Quad *)__pyx_v_self->__pyx_vtab)->calc_area_DA(__pyx_v_self, __pyx_v_L1, __pyx_v_L2, 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("_distortion.Quad.calc_area_DA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
341: if self.D0 != self.A0:
/* "_distortion.pyx":341 * * cpdef float calc_area_DA(self,float L1,float L2): * if self.D0 != self.A0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return 0.5 * (L2 - L1) * (self.pDA * (L1 + L2) + 2 * self.cDA) * else: */ __pyx_t_6 = (__pyx_v_self->D0 != __pyx_v_self->A0); if (__pyx_t_6) {
342: return 0.5 * (L2 - L1) * (self.pDA * (L1 + L2) + 2 * self.cDA)
/* "_distortion.pyx":342 * cpdef float calc_area_DA(self,float L1,float L2): * if self.D0 != self.A0: * return 0.5 * (L2 - L1) * (self.pDA * (L1 + L2) + 2 * self.cDA) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* else: * return 0.0 */ __pyx_r = ((0.5 * (__pyx_v_L2 - __pyx_v_L1)) * ((__pyx_v_self->pDA * (__pyx_v_L1 + __pyx_v_L2)) + (2.0 * __pyx_v_self->cDA))); goto __pyx_L0; goto __pyx_L3; } /*else*/ {
343: else:
344: return 0.0
/* "_distortion.pyx":344 * return 0.5 * (L2 - L1) * (self.pDA * (L1 + L2) + 2 * self.cDA) * else: * return 0.0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * */ __pyx_r = 0.0; goto __pyx_L0; } __pyx_L3:; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_WriteUnraisable("_distortion.Quad.calc_area_DA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11_distortion_4Quad_25calc_area_DA(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_11_distortion_4Quad_25calc_area_DA(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { float __pyx_v_L1; float __pyx_v_L2; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("calc_area_DA (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__L1,&__pyx_n_s__L2,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); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__L1)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__L2)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("calc_area_DA", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calc_area_DA")<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __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_L1 = __pyx_PyFloat_AsFloat(values[0]); if (unlikely((__pyx_v_L1 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_L2 = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_L2 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("calc_area_DA", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("_distortion.Quad.calc_area_DA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11_distortion_4Quad_24calc_area_DA(((struct __pyx_obj_11_distortion_Quad *)__pyx_v_self), __pyx_v_L1, __pyx_v_L2); __Pyx_RefNannyFinishContext(); return __pyx_r; }
345:
346:
347:
348: cpdef float calc_area(self):
/* "_distortion.pyx":348 * * * cpdef float calc_area(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if not self.has_area: * self.area = 0.5*((self.C0 - self.A0)*(self.D1 - self.B1)-(self.C1 - self.A1)*(self.D0 - self.B0)) */ static PyObject *__pyx_pw_11_distortion_4Quad_27calc_area(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static float __pyx_f_11_distortion_4Quad_calc_area(struct __pyx_obj_11_distortion_Quad *__pyx_v_self, int __pyx_skip_dispatch) { float __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("calc_area", 0); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overriden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__calc_area); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_11_distortion_4Quad_27calc_area)) { __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __pyx_PyFloat_AsFloat(__pyx_t_2); if (unlikely((__pyx_t_3 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "_distortion.pyx":348 * * * cpdef float calc_area(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if not self.has_area: * self.area = 0.5*((self.C0 - self.A0)*(self.D1 - self.B1)-(self.C1 - self.A1)*(self.D0 - self.B0)) */ static PyObject *__pyx_pf_11_distortion_4Quad_26calc_area(struct __pyx_obj_11_distortion_Quad *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("calc_area", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(((struct __pyx_vtabstruct_11_distortion_Quad *)__pyx_v_self->__pyx_vtab)->calc_area(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("_distortion.Quad.calc_area", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11_distortion_4Quad_29populate_box(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_11_distortion_4Quad_29populate_box(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("populate_box (wrapper)", 0); __pyx_r = __pyx_pf_11_distortion_4Quad_28populate_box(((struct __pyx_obj_11_distortion_Quad *)__pyx_v_self)); __Pyx_RefNannyFinishContext(); return __pyx_r; }
349: if not self.has_area:
/* "_distortion.pyx":349 * * cpdef float calc_area(self): * if not self.has_area: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.area = 0.5*((self.C0 - self.A0)*(self.D1 - self.B1)-(self.C1 - self.A1)*(self.D0 - self.B0)) * self.has_area = 1 */ __pyx_t_4 = (!__pyx_v_self->has_area); if (__pyx_t_4) {
350: self.area = 0.5*((self.C0 - self.A0)*(self.D1 - self.B1)-(self.C1 - self.A1)*(self.D0 - self.B0))
/* "_distortion.pyx":350 * cpdef float calc_area(self): * if not self.has_area: * self.area = 0.5*((self.C0 - self.A0)*(self.D1 - self.B1)-(self.C1 - self.A1)*(self.D0 - self.B0)) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.has_area = 1 * return self.area */ __pyx_v_self->area = (0.5 * (((__pyx_v_self->C0 - __pyx_v_self->A0) * (__pyx_v_self->D1 - __pyx_v_self->B1)) - ((__pyx_v_self->C1 - __pyx_v_self->A1) * (__pyx_v_self->D0 - __pyx_v_self->B0))));
351: self.has_area = 1
/* "_distortion.pyx":351 * if not self.has_area: * self.area = 0.5*((self.C0 - self.A0)*(self.D1 - self.B1)-(self.C1 - self.A1)*(self.D0 - self.B0)) * self.has_area = 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return self.area * */ __pyx_v_self->has_area = 1; goto __pyx_L3; } __pyx_L3:;
352: return self.area
/* "_distortion.pyx":352 * self.area = 0.5*((self.C0 - self.A0)*(self.D1 - self.B1)-(self.C1 - self.A1)*(self.D0 - self.B0)) * self.has_area = 1 * return self.area #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * def populate_box(self): */ __pyx_r = __pyx_v_self->area; goto __pyx_L0; __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_WriteUnraisable("_distortion.Quad.calc_area", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11_distortion_4Quad_27calc_area(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_11_distortion_4Quad_27calc_area(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("calc_area (wrapper)", 0); __pyx_r = __pyx_pf_11_distortion_4Quad_26calc_area(((struct __pyx_obj_11_distortion_Quad *)__pyx_v_self)); __Pyx_RefNannyFinishContext(); return __pyx_r; }
353:
354: def populate_box(self):
/* "_distortion.pyx":354 * return self.area * * def populate_box(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cdef int i0, i1 * cdef float area,value */ static PyObject *__pyx_pf_11_distortion_4Quad_28populate_box(struct __pyx_obj_11_distortion_Quad *__pyx_v_self) { int __pyx_v_i0; int __pyx_v_i1; float __pyx_v_area; float __pyx_v_value; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("populate_box", 0);
355: cdef int i0, i1
356: cdef float area,value
357: if not self.has_slope:
/* "_distortion.pyx":357 * cdef int i0, i1 * cdef float area,value * if not self.has_slope: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.init_slope() * integrate(self.box, self.B0, self.A0, self.pAB, self.cAB) */ __pyx_t_1 = (!__pyx_v_self->has_slope); if (__pyx_t_1) {
358: self.init_slope()
/* "_distortion.pyx":358 * cdef float area,value * if not self.has_slope: * self.init_slope() #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* integrate(self.box, self.B0, self.A0, self.pAB, self.cAB) * integrate(self.box, self.A0, self.D0, self.pDA, self.cDA) */ __pyx_t_2 = ((struct __pyx_vtabstruct_11_distortion_Quad *)__pyx_v_self->__pyx_vtab)->init_slope(__pyx_v_self, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L3; } __pyx_L3:;
359: integrate(self.box, self.B0, self.A0, self.pAB, self.cAB)
/* "_distortion.pyx":359 * if not self.has_slope: * self.init_slope() * integrate(self.box, self.B0, self.A0, self.pAB, self.cAB) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* integrate(self.box, self.A0, self.D0, self.pDA, self.cDA) * integrate(self.box, self.D0, self.C0, self.pCD, self.cCD) */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_f_11_distortion_integrate(__pyx_v_self->box, __pyx_v_self->B0, __pyx_v_self->A0, __pyx_v_self->pAB, __pyx_v_self->cAB);
360: integrate(self.box, self.A0, self.D0, self.pDA, self.cDA)
/* "_distortion.pyx":360 * self.init_slope() * integrate(self.box, self.B0, self.A0, self.pAB, self.cAB) * integrate(self.box, self.A0, self.D0, self.pDA, self.cDA) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* integrate(self.box, self.D0, self.C0, self.pCD, self.cCD) * integrate(self.box, self.C0, self.B0, self.pBC, self.cBC) */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_f_11_distortion_integrate(__pyx_v_self->box, __pyx_v_self->A0, __pyx_v_self->D0, __pyx_v_self->pDA, __pyx_v_self->cDA);
361: integrate(self.box, self.D0, self.C0, self.pCD, self.cCD)
/* "_distortion.pyx":361 * integrate(self.box, self.B0, self.A0, self.pAB, self.cAB) * integrate(self.box, self.A0, self.D0, self.pDA, self.cDA) * integrate(self.box, self.D0, self.C0, self.pCD, self.cCD) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* integrate(self.box, self.C0, self.B0, self.pBC, self.cBC) * area = self.calc_area() */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_f_11_distortion_integrate(__pyx_v_self->box, __pyx_v_self->D0, __pyx_v_self->C0, __pyx_v_self->pCD, __pyx_v_self->cCD);
362: integrate(self.box, self.C0, self.B0, self.pBC, self.cBC)
/* "_distortion.pyx":362 * integrate(self.box, self.A0, self.D0, self.pDA, self.cDA) * integrate(self.box, self.D0, self.C0, self.pCD, self.cCD) * integrate(self.box, self.C0, self.B0, self.pBC, self.cBC) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* area = self.calc_area() * for i0 in range(self.box_size0): */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_f_11_distortion_integrate(__pyx_v_self->box, __pyx_v_self->C0, __pyx_v_self->B0, __pyx_v_self->pBC, __pyx_v_self->cBC);
363: area = self.calc_area()
/* "_distortion.pyx":363 * integrate(self.box, self.D0, self.C0, self.pCD, self.cCD) * integrate(self.box, self.C0, self.B0, self.pBC, self.cBC) * area = self.calc_area() #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* for i0 in range(self.box_size0): * for i1 in range(self.box_size1): */ __pyx_v_area = ((struct __pyx_vtabstruct_11_distortion_Quad *)__pyx_v_self->__pyx_vtab)->calc_area(__pyx_v_self, 0);
364: for i0 in range(self.box_size0):
/* "_distortion.pyx":364 * integrate(self.box, self.C0, self.B0, self.pBC, self.cBC) * area = self.calc_area() * for i0 in range(self.box_size0): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* for i1 in range(self.box_size1): * value = self.box[i0,i1] / area */ __pyx_t_3 = __pyx_v_self->box_size0; for (__pyx_t_4 = 0; __pyx_t_4<
__pyx_t_3; __pyx_t_4+=1) { __pyx_v_i0 = __pyx_t_4;
365: for i1 in range(self.box_size1):
/* "_distortion.pyx":365 * area = self.calc_area() * for i0 in range(self.box_size0): * for i1 in range(self.box_size1): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* value = self.box[i0,i1] / area * self.box[i0,i1] = value */ __pyx_t_5 = __pyx_v_self->box_size1; for (__pyx_t_6 = 0; __pyx_t_6<
__pyx_t_5; __pyx_t_6+=1) { __pyx_v_i1 = __pyx_t_6;
366: value = self.box[i0,i1] / area
/* "_distortion.pyx":366 * for i0 in range(self.box_size0): * for i1 in range(self.box_size1): * value = self.box[i0,i1] / area #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.box[i0,i1] = value * if value<
0.0: */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_t_7 = __pyx_v_i0; __pyx_t_8 = __pyx_v_i1; __pyx_t_9 = -1; if (__pyx_t_7<
0) { __pyx_t_7 += __pyx_v_self->box.shape[0]; if (unlikely(__pyx_t_7<
0)) __pyx_t_9 = 0; } else if (unlikely(__pyx_t_7 >= __pyx_v_self->box.shape[0])) __pyx_t_9 = 0; if (__pyx_t_8<
0) { __pyx_t_8 += __pyx_v_self->box.shape[1]; if (unlikely(__pyx_t_8<
0)) __pyx_t_9 = 1; } else if (unlikely(__pyx_t_8 >= __pyx_v_self->box.shape[1])) __pyx_t_9 = 1; if (unlikely(__pyx_t_9 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_9); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_10 = (*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_self->box.data + __pyx_t_7 * __pyx_v_self->box.strides[0]) ) + __pyx_t_8 * __pyx_v_self->box.strides[1]) ))); if (unlikely(__pyx_v_area == 0)) { PyErr_Format(PyExc_ZeroDivisionError, "float division"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_v_value = (__pyx_t_10 / __pyx_v_area);
367: self.box[i0,i1] = value
/* "_distortion.pyx":367 * for i1 in range(self.box_size1): * value = self.box[i0,i1] / area * self.box[i0,i1] = value #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if value<
0.0: * print self.box */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_t_9 = __pyx_v_i0; __pyx_t_11 = __pyx_v_i1; __pyx_t_12 = -1; if (__pyx_t_9<
0) { __pyx_t_9 += __pyx_v_self->box.shape[0]; if (unlikely(__pyx_t_9<
0)) __pyx_t_12 = 0; } else if (unlikely(__pyx_t_9 >= __pyx_v_self->box.shape[0])) __pyx_t_12 = 0; if (__pyx_t_11<
0) { __pyx_t_11 += __pyx_v_self->box.shape[1]; if (unlikely(__pyx_t_11<
0)) __pyx_t_12 = 1; } else if (unlikely(__pyx_t_11 >= __pyx_v_self->box.shape[1])) __pyx_t_12 = 1; if (unlikely(__pyx_t_12 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_12); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } *((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_self->box.data + __pyx_t_9 * __pyx_v_self->box.strides[0]) ) + __pyx_t_11 * __pyx_v_self->box.strides[1]) )) = __pyx_v_value;
368: if value < 0.0:
/* "_distortion.pyx":368 * value = self.box[i0,i1] / area * self.box[i0,i1] = value * if value<
0.0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* print self.box * self.box[:, :] = 0 */ __pyx_t_1 = (__pyx_v_value<
0.0); if (__pyx_t_1) {
369: print self.box
/* "_distortion.pyx":369 * self.box[i0,i1] = value * if value<
0.0: * print self.box #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.box[:, :] = 0 * print "AB" */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_self->box, 2, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); if (__Pyx_PrintOne(0, __pyx_t_2)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
370: self.box[:, :] = 0
/* "_distortion.pyx":370 * if value<
0.0: * print self.box * self.box[:, :] = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* print "AB" * self.integrate(self.B0, self.A0, self.pAB, self.cAB) */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_t_13 = __pyx_v_self->box; __PYX_INC_MEMVIEW(&__pyx_t_13, 1); __pyx_t_12 = -1; __pyx_t_14.data = __pyx_t_13.data; __pyx_t_14.memview = __pyx_t_13.memview; __PYX_INC_MEMVIEW(&__pyx_t_14, 0); __pyx_t_14.shape[0] = __pyx_t_13.shape[0]; __pyx_t_14.strides[0] = __pyx_t_13.strides[0]; __pyx_t_14.suboffsets[0] = -1; __pyx_t_14.shape[1] = __pyx_t_13.shape[1]; __pyx_t_14.strides[1] = __pyx_t_13.strides[1]; __pyx_t_14.suboffsets[1] = -1; __PYX_XDEC_MEMVIEW(&__pyx_t_13, 1); { float __pyx_temp_scalar = 0.0; { Py_ssize_t __pyx_temp_extent_0 = __pyx_t_14.shape[0]; Py_ssize_t __pyx_temp_stride_0 = __pyx_t_14.strides[0]; char *__pyx_temp_pointer_0; Py_ssize_t __pyx_temp_idx_0; Py_ssize_t __pyx_temp_extent_1 = __pyx_t_14.shape[1]; Py_ssize_t __pyx_temp_stride_1 = __pyx_t_14.strides[1]; char *__pyx_temp_pointer_1; Py_ssize_t __pyx_temp_idx_1; __pyx_temp_pointer_0 = __pyx_t_14.data; for (__pyx_temp_idx_0 = 0; __pyx_temp_idx_0<
__pyx_temp_extent_0; __pyx_temp_idx_0++) { __pyx_temp_pointer_1 = __pyx_temp_pointer_0; for (__pyx_temp_idx_1 = 0; __pyx_temp_idx_1<
__pyx_temp_extent_1; __pyx_temp_idx_1++) { *((float *) __pyx_temp_pointer_1) = __pyx_temp_scalar; __pyx_temp_pointer_1 += __pyx_temp_stride_1; } __pyx_temp_pointer_0 += __pyx_temp_stride_0; } } } __PYX_XDEC_MEMVIEW(&__pyx_t_14, 1);
371: print "AB"
/* "_distortion.pyx":371 * print self.box * self.box[:, :] = 0 * print "AB" #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.integrate(self.B0, self.A0, self.pAB, self.cAB) * print self.box */ if (__Pyx_PrintOne(0, ((PyObject *)__pyx_n_s__AB))<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
372: self.integrate(self.B0, self.A0, self.pAB, self.cAB)
/* "_distortion.pyx":372 * self.box[:, :] = 0 * print "AB" * self.integrate(self.B0, self.A0, self.pAB, self.cAB) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* print self.box * self.box[:, :] = 0 */ __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__integrate); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_15 = PyFloat_FromDouble(__pyx_v_self->B0); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_15); __pyx_t_16 = PyFloat_FromDouble(__pyx_v_self->A0); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_16); __pyx_t_17 = PyFloat_FromDouble(__pyx_v_self->pAB); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_17); __pyx_t_18 = PyFloat_FromDouble(__pyx_v_self->cAB); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_18); __pyx_t_19 = PyTuple_New(4); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_15); __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_19, 1, __pyx_t_16); __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_19, 2, __pyx_t_17); __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_19, 3, __pyx_t_18); __Pyx_GIVEREF(__pyx_t_18); __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_18 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_19), NULL); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_19)); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
373: print self.box
/* "_distortion.pyx":373 * print "AB" * self.integrate(self.B0, self.A0, self.pAB, self.cAB) * print self.box #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.box[:, :] = 0 * print "DA" */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_t_18 = __pyx_memoryview_fromslice(__pyx_v_self->box, 2, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_18); if (__Pyx_PrintOne(0, __pyx_t_18)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
374: self.box[:, :] = 0
/* "_distortion.pyx":374 * self.integrate(self.B0, self.A0, self.pAB, self.cAB) * print self.box * self.box[:, :] = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* print "DA" * self.integrate(self.A0, self.D0, self.pDA, self.cDA) */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_t_13 = __pyx_v_self->box; __PYX_INC_MEMVIEW(&__pyx_t_13, 1); __pyx_t_12 = -1; __pyx_t_20.data = __pyx_t_13.data; __pyx_t_20.memview = __pyx_t_13.memview; __PYX_INC_MEMVIEW(&__pyx_t_20, 0); __pyx_t_20.shape[0] = __pyx_t_13.shape[0]; __pyx_t_20.strides[0] = __pyx_t_13.strides[0]; __pyx_t_20.suboffsets[0] = -1; __pyx_t_20.shape[1] = __pyx_t_13.shape[1]; __pyx_t_20.strides[1] = __pyx_t_13.strides[1]; __pyx_t_20.suboffsets[1] = -1; __PYX_XDEC_MEMVIEW(&__pyx_t_13, 1); { float __pyx_temp_scalar = 0.0; { Py_ssize_t __pyx_temp_extent_0 = __pyx_t_20.shape[0]; Py_ssize_t __pyx_temp_stride_0 = __pyx_t_20.strides[0]; char *__pyx_temp_pointer_0; Py_ssize_t __pyx_temp_idx_0; Py_ssize_t __pyx_temp_extent_1 = __pyx_t_20.shape[1]; Py_ssize_t __pyx_temp_stride_1 = __pyx_t_20.strides[1]; char *__pyx_temp_pointer_1; Py_ssize_t __pyx_temp_idx_1; __pyx_temp_pointer_0 = __pyx_t_20.data; for (__pyx_temp_idx_0 = 0; __pyx_temp_idx_0<
__pyx_temp_extent_0; __pyx_temp_idx_0++) { __pyx_temp_pointer_1 = __pyx_temp_pointer_0; for (__pyx_temp_idx_1 = 0; __pyx_temp_idx_1<
__pyx_temp_extent_1; __pyx_temp_idx_1++) { *((float *) __pyx_temp_pointer_1) = __pyx_temp_scalar; __pyx_temp_pointer_1 += __pyx_temp_stride_1; } __pyx_temp_pointer_0 += __pyx_temp_stride_0; } } } __PYX_XDEC_MEMVIEW(&__pyx_t_20, 1);
375: print "DA"
/* "_distortion.pyx":375 * print self.box * self.box[:, :] = 0 * print "DA" #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.integrate(self.A0, self.D0, self.pDA, self.cDA) * print self.box */ if (__Pyx_PrintOne(0, ((PyObject *)__pyx_n_s__DA))<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
376: self.integrate(self.A0, self.D0, self.pDA, self.cDA)
/* "_distortion.pyx":376 * self.box[:, :] = 0 * print "DA" * self.integrate(self.A0, self.D0, self.pDA, self.cDA) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* print self.box * self.box[:, :] = 0 */ __pyx_t_18 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__integrate); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_18); __pyx_t_19 = PyFloat_FromDouble(__pyx_v_self->A0); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_19); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->D0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_17 = PyFloat_FromDouble(__pyx_v_self->pDA); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_17); __pyx_t_16 = PyFloat_FromDouble(__pyx_v_self->cDA); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_16); __pyx_t_15 = PyTuple_New(4); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_19); __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_15, 2, __pyx_t_17); __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_15, 3, __pyx_t_16); __Pyx_GIVEREF(__pyx_t_16); __pyx_t_19 = 0; __pyx_t_2 = 0; __pyx_t_17 = 0; __pyx_t_16 = 0; __pyx_t_16 = PyObject_Call(__pyx_t_18, ((PyObject *)__pyx_t_15), NULL); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
377: print self.box
/* "_distortion.pyx":377 * print "DA" * self.integrate(self.A0, self.D0, self.pDA, self.cDA) * print self.box #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.box[:, :] = 0 * print "CD" */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_t_16 = __pyx_memoryview_fromslice(__pyx_v_self->box, 2, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_16); if (__Pyx_PrintOne(0, __pyx_t_16)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
378: self.box[:, :] = 0
/* "_distortion.pyx":378 * self.integrate(self.A0, self.D0, self.pDA, self.cDA) * print self.box * self.box[:, :] = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* print "CD" * self.integrate(self.D0, self.C0, self.pCD, self.cCD) */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_t_13 = __pyx_v_self->box; __PYX_INC_MEMVIEW(&__pyx_t_13, 1); __pyx_t_12 = -1; __pyx_t_21.data = __pyx_t_13.data; __pyx_t_21.memview = __pyx_t_13.memview; __PYX_INC_MEMVIEW(&__pyx_t_21, 0); __pyx_t_21.shape[0] = __pyx_t_13.shape[0]; __pyx_t_21.strides[0] = __pyx_t_13.strides[0]; __pyx_t_21.suboffsets[0] = -1; __pyx_t_21.shape[1] = __pyx_t_13.shape[1]; __pyx_t_21.strides[1] = __pyx_t_13.strides[1]; __pyx_t_21.suboffsets[1] = -1; __PYX_XDEC_MEMVIEW(&__pyx_t_13, 1); { float __pyx_temp_scalar = 0.0; { Py_ssize_t __pyx_temp_extent_0 = __pyx_t_21.shape[0]; Py_ssize_t __pyx_temp_stride_0 = __pyx_t_21.strides[0]; char *__pyx_temp_pointer_0; Py_ssize_t __pyx_temp_idx_0; Py_ssize_t __pyx_temp_extent_1 = __pyx_t_21.shape[1]; Py_ssize_t __pyx_temp_stride_1 = __pyx_t_21.strides[1]; char *__pyx_temp_pointer_1; Py_ssize_t __pyx_temp_idx_1; __pyx_temp_pointer_0 = __pyx_t_21.data; for (__pyx_temp_idx_0 = 0; __pyx_temp_idx_0<
__pyx_temp_extent_0; __pyx_temp_idx_0++) { __pyx_temp_pointer_1 = __pyx_temp_pointer_0; for (__pyx_temp_idx_1 = 0; __pyx_temp_idx_1<
__pyx_temp_extent_1; __pyx_temp_idx_1++) { *((float *) __pyx_temp_pointer_1) = __pyx_temp_scalar; __pyx_temp_pointer_1 += __pyx_temp_stride_1; } __pyx_temp_pointer_0 += __pyx_temp_stride_0; } } } __PYX_XDEC_MEMVIEW(&__pyx_t_21, 1);
379: print "CD"
/* "_distortion.pyx":379 * print self.box * self.box[:, :] = 0 * print "CD" #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.integrate(self.D0, self.C0, self.pCD, self.cCD) * print self.box */ if (__Pyx_PrintOne(0, ((PyObject *)__pyx_n_s__CD))<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
380: self.integrate(self.D0, self.C0, self.pCD, self.cCD)
/* "_distortion.pyx":380 * self.box[:, :] = 0 * print "CD" * self.integrate(self.D0, self.C0, self.pCD, self.cCD) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* print self.box * self.box[:, :] = 0 */ __pyx_t_16 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__integrate); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_16); __pyx_t_15 = PyFloat_FromDouble(__pyx_v_self->D0); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_15); __pyx_t_18 = PyFloat_FromDouble(__pyx_v_self->C0); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_18); __pyx_t_17 = PyFloat_FromDouble(__pyx_v_self->pCD); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_17); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->cCD); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_19 = PyTuple_New(4); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_15); __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_19, 1, __pyx_t_18); __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_19, 2, __pyx_t_17); __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_19, 3, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_15 = 0; __pyx_t_18 = 0; __pyx_t_17 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(__pyx_t_16, ((PyObject *)__pyx_t_19), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_19)); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
381: print self.box
/* "_distortion.pyx":381 * print "CD" * self.integrate(self.D0, self.C0, self.pCD, self.cCD) * print self.box #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.box[:, :] = 0 * print "BC" */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_self->box, 2, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); if (__Pyx_PrintOne(0, __pyx_t_2)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
382: self.box[:, :] = 0
/* "_distortion.pyx":382 * self.integrate(self.D0, self.C0, self.pCD, self.cCD) * print self.box * self.box[:, :] = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* print "BC" * self.integrate(self.C0, self.B0, self.pBC, self.cBC) */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_t_13 = __pyx_v_self->box; __PYX_INC_MEMVIEW(&__pyx_t_13, 1); __pyx_t_12 = -1; __pyx_t_22.data = __pyx_t_13.data; __pyx_t_22.memview = __pyx_t_13.memview; __PYX_INC_MEMVIEW(&__pyx_t_22, 0); __pyx_t_22.shape[0] = __pyx_t_13.shape[0]; __pyx_t_22.strides[0] = __pyx_t_13.strides[0]; __pyx_t_22.suboffsets[0] = -1; __pyx_t_22.shape[1] = __pyx_t_13.shape[1]; __pyx_t_22.strides[1] = __pyx_t_13.strides[1]; __pyx_t_22.suboffsets[1] = -1; __PYX_XDEC_MEMVIEW(&__pyx_t_13, 1); { float __pyx_temp_scalar = 0.0; { Py_ssize_t __pyx_temp_extent_0 = __pyx_t_22.shape[0]; Py_ssize_t __pyx_temp_stride_0 = __pyx_t_22.strides[0]; char *__pyx_temp_pointer_0; Py_ssize_t __pyx_temp_idx_0; Py_ssize_t __pyx_temp_extent_1 = __pyx_t_22.shape[1]; Py_ssize_t __pyx_temp_stride_1 = __pyx_t_22.strides[1]; char *__pyx_temp_pointer_1; Py_ssize_t __pyx_temp_idx_1; __pyx_temp_pointer_0 = __pyx_t_22.data; for (__pyx_temp_idx_0 = 0; __pyx_temp_idx_0<
__pyx_temp_extent_0; __pyx_temp_idx_0++) { __pyx_temp_pointer_1 = __pyx_temp_pointer_0; for (__pyx_temp_idx_1 = 0; __pyx_temp_idx_1<
__pyx_temp_extent_1; __pyx_temp_idx_1++) { *((float *) __pyx_temp_pointer_1) = __pyx_temp_scalar; __pyx_temp_pointer_1 += __pyx_temp_stride_1; } __pyx_temp_pointer_0 += __pyx_temp_stride_0; } } } __PYX_XDEC_MEMVIEW(&__pyx_t_22, 1);
383: print "BC"
/* "_distortion.pyx":383 * print self.box * self.box[:, :] = 0 * print "BC" #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.integrate(self.C0, self.B0, self.pBC, self.cBC) * print self.box */ if (__Pyx_PrintOne(0, ((PyObject *)__pyx_n_s__BC))<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
384: self.integrate(self.C0, self.B0, self.pBC, self.cBC)
/* "_distortion.pyx":384 * self.box[:, :] = 0 * print "BC" * self.integrate(self.C0, self.B0, self.pBC, self.cBC) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* print self.box * print self */ __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__integrate); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_19 = PyFloat_FromDouble(__pyx_v_self->C0); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_19); __pyx_t_16 = PyFloat_FromDouble(__pyx_v_self->B0); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_16); __pyx_t_17 = PyFloat_FromDouble(__pyx_v_self->pBC); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_17); __pyx_t_18 = PyFloat_FromDouble(__pyx_v_self->cBC); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_18); __pyx_t_15 = PyTuple_New(4); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_19); __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_16); __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_15, 2, __pyx_t_17); __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_15, 3, __pyx_t_18); __Pyx_GIVEREF(__pyx_t_18); __pyx_t_19 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_18 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_15), NULL); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
385: print self.box
/* "_distortion.pyx":385 * print "BC" * self.integrate(self.C0, self.B0, self.pBC, self.cBC) * print self.box #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* print self * raise RuntimeError() */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_t_18 = __pyx_memoryview_fromslice(__pyx_v_self->box, 2, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_18); if (__Pyx_PrintOne(0, __pyx_t_18)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
386: print self
/* "_distortion.pyx":386 * self.integrate(self.C0, self.B0, self.pBC, self.cBC) * print self.box * print self #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* raise RuntimeError() * */ if (__Pyx_PrintOne(0, ((PyObject *)__pyx_v_self))<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
387: raise RuntimeError()
/* "_distortion.pyx":387 * print self.box * print self * raise RuntimeError() #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * def integrate(self, float start, float stop, float slope, float intercept): */ __pyx_t_18 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_18); __Pyx_Raise(__pyx_t_18, 0, 0, 0); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L8; } __pyx_L8:; } } __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __PYX_XDEC_MEMVIEW(&__pyx_t_13, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_14, 1); __Pyx_XDECREF(__pyx_t_15); __Pyx_XDECREF(__pyx_t_16); __Pyx_XDECREF(__pyx_t_17); __Pyx_XDECREF(__pyx_t_18); __Pyx_XDECREF(__pyx_t_19); __PYX_XDEC_MEMVIEW(&__pyx_t_20, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_21, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_22, 1); __Pyx_AddTraceback("_distortion.Quad.populate_box", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11_distortion_4Quad_31integrate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_11_distortion_4Quad_31integrate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { float __pyx_v_start; float __pyx_v_stop; float __pyx_v_slope; float __pyx_v_intercept; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("integrate (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__start,&__pyx_n_s__stop,&__pyx_n_s__slope,&__pyx_n_s__intercept,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); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__start)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__stop)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("integrate", 1, 4, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 2: if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__slope)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("integrate", 1, 4, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 3: if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__intercept)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("integrate", 1, 4, 4, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "integrate")<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __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_start = __pyx_PyFloat_AsFloat(values[0]); if (unlikely((__pyx_v_start == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_stop = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_stop == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_slope = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_slope == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_intercept = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_intercept == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("integrate", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("_distortion.Quad.integrate", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11_distortion_4Quad_30integrate(((struct __pyx_obj_11_distortion_Quad *)__pyx_v_self), __pyx_v_start, __pyx_v_stop, __pyx_v_slope, __pyx_v_intercept); __Pyx_RefNannyFinishContext(); return __pyx_r; }
388:
389: def integrate(self, float start, float stop, float slope, float intercept):
/* "_distortion.pyx":389 * raise RuntimeError() * * def integrate(self, float start, float stop, float slope, float intercept): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cdef int i, h = 0 * cdef float P,dP, A, AA, dA, sign */ static PyObject *__pyx_pf_11_distortion_4Quad_30integrate(struct __pyx_obj_11_distortion_Quad *__pyx_v_self, float __pyx_v_start, float __pyx_v_stop, float __pyx_v_slope, float __pyx_v_intercept) { int __pyx_v_i; int __pyx_v_h; float __pyx_v_P; float __pyx_v_dP; float __pyx_v_A; float __pyx_v_AA; float __pyx_v_dA; float __pyx_v_sign; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("integrate", 0);
390: cdef int i, h = 0
/* "_distortion.pyx":390 * * def integrate(self, float start, float stop, float slope, float intercept): * cdef int i, h = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cdef float P,dP, A, AA, dA, sign * # print start, stop, calc_area(start, stop) */ __pyx_v_h = 0;
391: cdef float P,dP, A, AA, dA, sign
392: # print start, stop, calc_area(start, stop)
393: if start < stop: # positive contribution
/* "_distortion.pyx":393 * cdef float P,dP, A, AA, dA, sign * # print start, stop, calc_area(start, stop) * if start<
stop: # positive contribution #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* P = ceil(start) * dP = P - start */ __pyx_t_1 = (__pyx_v_start<
__pyx_v_stop); if (__pyx_t_1) {
394: P = ceil(start)
/* "_distortion.pyx":394 * # print start, stop, calc_area(start, stop) * if start<
stop: # positive contribution * P = ceil(start) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dP = P - start * # print "Integrate", start, P, stop, calc_area(start, stop) */ __pyx_v_P = ceil(__pyx_v_start);
395: dP = P - start
/* "_distortion.pyx":395 * if start<
stop: # positive contribution * P = ceil(start) * dP = P - start #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* # print "Integrate", start, P, stop, calc_area(start, stop) * if P > stop: # start and stop are in the same unit */ __pyx_v_dP = (__pyx_v_P - __pyx_v_start);
396: # print "Integrate", start, P, stop, calc_area(start, stop)
397: if P > stop: # start and stop are in the same unit
/* "_distortion.pyx":397 * dP = P - start * # print "Integrate", start, P, stop, calc_area(start, stop) * if P > stop: # start and stop are in the same unit #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* A = calc_area(start, stop, slope, intercept) * if A != 0: */ __pyx_t_1 = (__pyx_v_P > __pyx_v_stop); if (__pyx_t_1) {
398: A = calc_area(start, stop, slope, intercept)
/* "_distortion.pyx":398 * # print "Integrate", start, P, stop, calc_area(start, stop) * if P > stop: # start and stop are in the same unit * A = calc_area(start, stop, slope, intercept) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if A != 0: * AA = fabs(A) */ __pyx_v_A = __pyx_f_11_distortion_calc_area(__pyx_v_start, __pyx_v_stop, __pyx_v_slope, __pyx_v_intercept, 0);
399: if A != 0:
/* "_distortion.pyx":399 * if P > stop: # start and stop are in the same unit * A = calc_area(start, stop, slope, intercept) * if A != 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = fabs(A) * sign = A / AA */ __pyx_t_1 = (__pyx_v_A != 0.0); if (__pyx_t_1) {
400: AA = fabs(A)
/* "_distortion.pyx":400 * A = calc_area(start, stop, slope, intercept) * if A != 0: * AA = fabs(A) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* sign = A / AA * dA = (stop - start) # always positive */ __pyx_v_AA = fabs(__pyx_v_A);
401: sign = A / AA
/* "_distortion.pyx":401 * if A != 0: * AA = fabs(A) * sign = A / AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = (stop - start) # always positive * # print AA, sign, dA */ if (unlikely(__pyx_v_AA == 0)) { PyErr_Format(PyExc_ZeroDivisionError, "float division"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_v_sign = (__pyx_v_A / __pyx_v_AA);
402: dA = (stop - start) # always positive
/* "_distortion.pyx":402 * AA = fabs(A) * sign = A / AA * dA = (stop - start) # always positive #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* # print AA, sign, dA * h = 0 */ __pyx_v_dA = (__pyx_v_stop - __pyx_v_start);
403: # print AA, sign, dA
404: h = 0
/* "_distortion.pyx":404 * dA = (stop - start) # always positive * # print AA, sign, dA * h = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* while AA > 0: * if dA > AA: */ __pyx_v_h = 0;
405: while AA > 0:
/* "_distortion.pyx":405 * # print AA, sign, dA * h = 0 * while AA > 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if dA > AA: * dA = AA */ while (1) { __pyx_t_1 = (__pyx_v_AA > 0.0); if (!__pyx_t_1) break;
406: if dA > AA:
/* "_distortion.pyx":406 * h = 0 * while AA > 0: * if dA > AA: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = AA * AA = -1 */ __pyx_t_1 = (__pyx_v_dA > __pyx_v_AA); if (__pyx_t_1) {
407: dA = AA
/* "_distortion.pyx":407 * while AA > 0: * if dA > AA: * dA = AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = -1 * self.box[(<
int> floor(start)), h] += sign * dA */ __pyx_v_dA = __pyx_v_AA;
408: AA = -1
/* "_distortion.pyx":408 * if dA > AA: * dA = AA * AA = -1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.box[(<
int> floor(start)), h] += sign * dA * AA -= dA */ __pyx_v_AA = -1.0; goto __pyx_L8; } __pyx_L8:;
409: self.box[(<int> floor(start)), h] += sign * dA
/* "_distortion.pyx":409 * dA = AA * AA = -1 * self.box[(<
int> floor(start)), h] += sign * dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA -= dA * h += 1 */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_t_2 = ((int)floor(__pyx_v_start)); __pyx_t_3 = __pyx_v_h; __pyx_t_4 = -1; if (__pyx_t_2<
0) { __pyx_t_2 += __pyx_v_self->box.shape[0]; if (unlikely(__pyx_t_2<
0)) __pyx_t_4 = 0; } else if (unlikely(__pyx_t_2 >= __pyx_v_self->box.shape[0])) __pyx_t_4 = 0; if (__pyx_t_3<
0) { __pyx_t_3 += __pyx_v_self->box.shape[1]; if (unlikely(__pyx_t_3<
0)) __pyx_t_4 = 1; } else if (unlikely(__pyx_t_3 >= __pyx_v_self->box.shape[1])) __pyx_t_4 = 1; if (unlikely(__pyx_t_4 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } *((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_self->box.data + __pyx_t_2 * __pyx_v_self->box.strides[0]) ) + __pyx_t_3 * __pyx_v_self->box.strides[1]) )) += (__pyx_v_sign * __pyx_v_dA);
410: AA -= dA
/* "_distortion.pyx":410 * AA = -1 * self.box[(<
int> floor(start)), h] += sign * dA * AA -= dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h += 1 * else: */ __pyx_v_AA = (__pyx_v_AA - __pyx_v_dA);
411: h += 1
/* "_distortion.pyx":411 * self.box[(<
int> floor(start)), h] += sign * dA * AA -= dA * h += 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* else: * if dP > 0: */ __pyx_v_h = (__pyx_v_h + 1); } goto __pyx_L5; } __pyx_L5:; goto __pyx_L4; } /*else*/ {
412: else:
413: if dP > 0:
/* "_distortion.pyx":413 * h += 1 * else: * if dP > 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* A = calc_area(start, P, slope, intercept) * if A != 0: */ __pyx_t_1 = (__pyx_v_dP > 0.0); if (__pyx_t_1) {
414: A = calc_area(start, P, slope, intercept)
/* "_distortion.pyx":414 * else: * if dP > 0: * A = calc_area(start, P, slope, intercept) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if A != 0: * AA = fabs(A) */ __pyx_v_A = __pyx_f_11_distortion_calc_area(__pyx_v_start, __pyx_v_P, __pyx_v_slope, __pyx_v_intercept, 0);
415: if A != 0:
/* "_distortion.pyx":415 * if dP > 0: * A = calc_area(start, P, slope, intercept) * if A != 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = fabs(A) * sign = A / AA */ __pyx_t_1 = (__pyx_v_A != 0.0); if (__pyx_t_1) {
416: AA = fabs(A)
/* "_distortion.pyx":416 * A = calc_area(start, P, slope, intercept) * if A != 0: * AA = fabs(A) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* sign = A / AA * h = 0 */ __pyx_v_AA = fabs(__pyx_v_A);
417: sign = A / AA
/* "_distortion.pyx":417 * if A != 0: * AA = fabs(A) * sign = A / AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h = 0 * dA = dP */ if (unlikely(__pyx_v_AA == 0)) { PyErr_Format(PyExc_ZeroDivisionError, "float division"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_v_sign = (__pyx_v_A / __pyx_v_AA);
418: h = 0
/* "_distortion.pyx":418 * AA = fabs(A) * sign = A / AA * h = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = dP * while AA > 0: */ __pyx_v_h = 0;
419: dA = dP
/* "_distortion.pyx":419 * sign = A / AA * h = 0 * dA = dP #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* while AA > 0: * if dA > AA: */ __pyx_v_dA = __pyx_v_dP;
420: while AA > 0:
/* "_distortion.pyx":420 * h = 0 * dA = dP * while AA > 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if dA > AA: * dA = AA */ while (1) { __pyx_t_1 = (__pyx_v_AA > 0.0); if (!__pyx_t_1) break;
421: if dA > AA:
/* "_distortion.pyx":421 * dA = dP * while AA > 0: * if dA > AA: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = AA * AA = -1 */ __pyx_t_1 = (__pyx_v_dA > __pyx_v_AA); if (__pyx_t_1) {
422: dA = AA
/* "_distortion.pyx":422 * while AA > 0: * if dA > AA: * dA = AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = -1 * self.box[(<
int> floor(P)) - 1, h] += sign * dA */ __pyx_v_dA = __pyx_v_AA;
423: AA = -1
/* "_distortion.pyx":423 * if dA > AA: * dA = AA * AA = -1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.box[(<
int> floor(P)) - 1, h] += sign * dA * AA -= dA */ __pyx_v_AA = -1.0; goto __pyx_L13; } __pyx_L13:;
424: self.box[(<int> floor(P)) - 1, h] += sign * dA
/* "_distortion.pyx":424 * dA = AA * AA = -1 * self.box[(<
int> floor(P)) - 1, h] += sign * dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA -= dA * h += 1 */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_t_5 = (((int)floor(__pyx_v_P)) - 1); __pyx_t_4 = __pyx_v_h; __pyx_t_6 = -1; if (__pyx_t_5<
0) { __pyx_t_5 += __pyx_v_self->box.shape[0]; if (unlikely(__pyx_t_5<
0)) __pyx_t_6 = 0; } else if (unlikely(__pyx_t_5 >= __pyx_v_self->box.shape[0])) __pyx_t_6 = 0; if (__pyx_t_4<
0) { __pyx_t_4 += __pyx_v_self->box.shape[1]; if (unlikely(__pyx_t_4<
0)) __pyx_t_6 = 1; } else if (unlikely(__pyx_t_4 >= __pyx_v_self->box.shape[1])) __pyx_t_6 = 1; if (unlikely(__pyx_t_6 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_6); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } *((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_self->box.data + __pyx_t_5 * __pyx_v_self->box.strides[0]) ) + __pyx_t_4 * __pyx_v_self->box.strides[1]) )) += (__pyx_v_sign * __pyx_v_dA);
425: AA -= dA
/* "_distortion.pyx":425 * AA = -1 * self.box[(<
int> floor(P)) - 1, h] += sign * dA * AA -= dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h += 1 * # subsection P1->Pn */ __pyx_v_AA = (__pyx_v_AA - __pyx_v_dA);
426: h += 1
/* "_distortion.pyx":426 * self.box[(<
int> floor(P)) - 1, h] += sign * dA * AA -= dA * h += 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* # subsection P1->Pn * for i in range((<
int> floor(P)), (<
int> floor(stop))): */ __pyx_v_h = (__pyx_v_h + 1); } goto __pyx_L10; } __pyx_L10:; goto __pyx_L9; } __pyx_L9:;
427: # subsection P1->Pn
428: for i in range((<int> floor(P)), (<int> floor(stop))):
/* "_distortion.pyx":428 * h += 1 * # subsection P1->Pn * for i in range((<
int> floor(P)), (<
int> floor(stop))): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* A = calc_area(i, i + 1, slope, intercept) * if A != 0: */ __pyx_t_6 = ((int)floor(__pyx_v_stop)); for (__pyx_t_7 = ((int)floor(__pyx_v_P)); __pyx_t_7<
__pyx_t_6; __pyx_t_7+=1) { __pyx_v_i = __pyx_t_7;
429: A = calc_area(i, i + 1, slope, intercept)
/* "_distortion.pyx":429 * # subsection P1->Pn * for i in range((<
int> floor(P)), (<
int> floor(stop))): * A = calc_area(i, i + 1, slope, intercept) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if A != 0: * AA = fabs(A) */ __pyx_v_A = __pyx_f_11_distortion_calc_area(__pyx_v_i, (__pyx_v_i + 1), __pyx_v_slope, __pyx_v_intercept, 0);
430: if A != 0:
/* "_distortion.pyx":430 * for i in range((<
int> floor(P)), (<
int> floor(stop))): * A = calc_area(i, i + 1, slope, intercept) * if A != 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = fabs(A) * sign = A / AA */ __pyx_t_1 = (__pyx_v_A != 0.0); if (__pyx_t_1) {
431: AA = fabs(A)
/* "_distortion.pyx":431 * A = calc_area(i, i + 1, slope, intercept) * if A != 0: * AA = fabs(A) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* sign = A / AA * */ __pyx_v_AA = fabs(__pyx_v_A);
432: sign = A / AA
/* "_distortion.pyx":432 * if A != 0: * AA = fabs(A) * sign = A / AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * h = 0 */ if (unlikely(__pyx_v_AA == 0)) { PyErr_Format(PyExc_ZeroDivisionError, "float division"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_v_sign = (__pyx_v_A / __pyx_v_AA);
433:
434: h = 0
/* "_distortion.pyx":434 * sign = A / AA * * h = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = 1.0 * while AA > 0: */ __pyx_v_h = 0;
435: dA = 1.0
/* "_distortion.pyx":435 * * h = 0 * dA = 1.0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* while AA > 0: * if dA > AA: */ __pyx_v_dA = 1.0;
436: while AA > 0:
/* "_distortion.pyx":436 * h = 0 * dA = 1.0 * while AA > 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if dA > AA: * dA = AA */ while (1) { __pyx_t_1 = (__pyx_v_AA > 0.0); if (!__pyx_t_1) break;
437: if dA > AA:
/* "_distortion.pyx":437 * dA = 1.0 * while AA > 0: * if dA > AA: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = AA * AA = -1 */ __pyx_t_1 = (__pyx_v_dA > __pyx_v_AA); if (__pyx_t_1) {
438: dA = AA
/* "_distortion.pyx":438 * while AA > 0: * if dA > AA: * dA = AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = -1 * self.box[i , h] += sign * dA */ __pyx_v_dA = __pyx_v_AA;
439: AA = -1
/* "_distortion.pyx":439 * if dA > AA: * dA = AA * AA = -1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.box[i , h] += sign * dA * AA -= dA */ __pyx_v_AA = -1.0; goto __pyx_L19; } __pyx_L19:;
440: self.box[i , h] += sign * dA
/* "_distortion.pyx":440 * dA = AA * AA = -1 * self.box[i , h] += sign * dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA -= dA * h += 1 */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_t_8 = __pyx_v_i; __pyx_t_9 = __pyx_v_h; __pyx_t_10 = -1; if (__pyx_t_8<
0) { __pyx_t_8 += __pyx_v_self->box.shape[0]; if (unlikely(__pyx_t_8<
0)) __pyx_t_10 = 0; } else if (unlikely(__pyx_t_8 >= __pyx_v_self->box.shape[0])) __pyx_t_10 = 0; if (__pyx_t_9<
0) { __pyx_t_9 += __pyx_v_self->box.shape[1]; if (unlikely(__pyx_t_9<
0)) __pyx_t_10 = 1; } else if (unlikely(__pyx_t_9 >= __pyx_v_self->box.shape[1])) __pyx_t_10 = 1; if (unlikely(__pyx_t_10 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_10); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } *((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_self->box.data + __pyx_t_8 * __pyx_v_self->box.strides[0]) ) + __pyx_t_9 * __pyx_v_self->box.strides[1]) )) += (__pyx_v_sign * __pyx_v_dA);
441: AA -= dA
/* "_distortion.pyx":441 * AA = -1 * self.box[i , h] += sign * dA * AA -= dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h += 1 * # Section Pn->B */ __pyx_v_AA = (__pyx_v_AA - __pyx_v_dA);
442: h += 1
/* "_distortion.pyx":442 * self.box[i , h] += sign * dA * AA -= dA * h += 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* # Section Pn->B * P = floor(stop) */ __pyx_v_h = (__pyx_v_h + 1); } goto __pyx_L16; } __pyx_L16:; }
443: # Section Pn->B
444: P = floor(stop)
/* "_distortion.pyx":444 * h += 1 * # Section Pn->B * P = floor(stop) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dP = stop - P * if dP > 0: */ __pyx_v_P = floor(__pyx_v_stop);
445: dP = stop - P
/* "_distortion.pyx":445 * # Section Pn->B * P = floor(stop) * dP = stop - P #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if dP > 0: * A = calc_area(P, stop, slope, intercept) */ __pyx_v_dP = (__pyx_v_stop - __pyx_v_P);
446: if dP > 0:
/* "_distortion.pyx":446 * P = floor(stop) * dP = stop - P * if dP > 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* A = calc_area(P, stop, slope, intercept) * if A != 0: */ __pyx_t_1 = (__pyx_v_dP > 0.0); if (__pyx_t_1) {
447: A = calc_area(P, stop, slope, intercept)
/* "_distortion.pyx":447 * dP = stop - P * if dP > 0: * A = calc_area(P, stop, slope, intercept) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if A != 0: * AA = fabs(A) */ __pyx_v_A = __pyx_f_11_distortion_calc_area(__pyx_v_P, __pyx_v_stop, __pyx_v_slope, __pyx_v_intercept, 0);
448: if A != 0:
/* "_distortion.pyx":448 * if dP > 0: * A = calc_area(P, stop, slope, intercept) * if A != 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = fabs(A) * sign = A / AA */ __pyx_t_1 = (__pyx_v_A != 0.0); if (__pyx_t_1) {
449: AA = fabs(A)
/* "_distortion.pyx":449 * A = calc_area(P, stop, slope, intercept) * if A != 0: * AA = fabs(A) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* sign = A / AA * h = 0 */ __pyx_v_AA = fabs(__pyx_v_A);
450: sign = A / AA
/* "_distortion.pyx":450 * if A != 0: * AA = fabs(A) * sign = A / AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h = 0 * dA = fabs(dP) */ if (unlikely(__pyx_v_AA == 0)) { PyErr_Format(PyExc_ZeroDivisionError, "float division"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_v_sign = (__pyx_v_A / __pyx_v_AA);
451: h = 0
/* "_distortion.pyx":451 * AA = fabs(A) * sign = A / AA * h = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = fabs(dP) * while AA > 0: */ __pyx_v_h = 0;
452: dA = fabs(dP)
/* "_distortion.pyx":452 * sign = A / AA * h = 0 * dA = fabs(dP) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* while AA > 0: * if dA > AA: */ __pyx_v_dA = fabs(__pyx_v_dP);
453: while AA > 0:
/* "_distortion.pyx":453 * h = 0 * dA = fabs(dP) * while AA > 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if dA > AA: * dA = AA */ while (1) { __pyx_t_1 = (__pyx_v_AA > 0.0); if (!__pyx_t_1) break;
454: if dA > AA:
/* "_distortion.pyx":454 * dA = fabs(dP) * while AA > 0: * if dA > AA: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = AA * AA = -1 */ __pyx_t_1 = (__pyx_v_dA > __pyx_v_AA); if (__pyx_t_1) {
455: dA = AA
/* "_distortion.pyx":455 * while AA > 0: * if dA > AA: * dA = AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = -1 * self.box[(<
int> floor(P)), h] += sign * dA */ __pyx_v_dA = __pyx_v_AA;
456: AA = -1
/* "_distortion.pyx":456 * if dA > AA: * dA = AA * AA = -1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.box[(<
int> floor(P)), h] += sign * dA * AA -= dA */ __pyx_v_AA = -1.0; goto __pyx_L24; } __pyx_L24:;
457: self.box[(<int> floor(P)), h] += sign * dA
/* "_distortion.pyx":457 * dA = AA * AA = -1 * self.box[(<
int> floor(P)), h] += sign * dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA -= dA * h += 1 */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_t_6 = ((int)floor(__pyx_v_P)); __pyx_t_7 = __pyx_v_h; __pyx_t_10 = -1; if (__pyx_t_6<
0) { __pyx_t_6 += __pyx_v_self->box.shape[0]; if (unlikely(__pyx_t_6<
0)) __pyx_t_10 = 0; } else if (unlikely(__pyx_t_6 >= __pyx_v_self->box.shape[0])) __pyx_t_10 = 0; if (__pyx_t_7<
0) { __pyx_t_7 += __pyx_v_self->box.shape[1]; if (unlikely(__pyx_t_7<
0)) __pyx_t_10 = 1; } else if (unlikely(__pyx_t_7 >= __pyx_v_self->box.shape[1])) __pyx_t_10 = 1; if (unlikely(__pyx_t_10 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_10); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } *((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_self->box.data + __pyx_t_6 * __pyx_v_self->box.strides[0]) ) + __pyx_t_7 * __pyx_v_self->box.strides[1]) )) += (__pyx_v_sign * __pyx_v_dA);
458: AA -= dA
/* "_distortion.pyx":458 * AA = -1 * self.box[(<
int> floor(P)), h] += sign * dA * AA -= dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h += 1 * elif start > stop: # negative contribution. Nota is start=stop: no contribution */ __pyx_v_AA = (__pyx_v_AA - __pyx_v_dA);
459: h += 1
/* "_distortion.pyx":459 * self.box[(<
int> floor(P)), h] += sign * dA * AA -= dA * h += 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* elif start > stop: # negative contribution. Nota is start=stop: no contribution * P = floor(start) */ __pyx_v_h = (__pyx_v_h + 1); } goto __pyx_L21; } __pyx_L21:; goto __pyx_L20; } __pyx_L20:; } __pyx_L4:; goto __pyx_L3; }
460: elif start > stop: # negative contribution. Nota is start=stop: no contribution
/* "_distortion.pyx":460 * AA -= dA * h += 1 * elif start > stop: # negative contribution. Nota is start=stop: no contribution #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* P = floor(start) * if stop > P: # start and stop are in the same unit */ __pyx_t_1 = (__pyx_v_start > __pyx_v_stop); if (__pyx_t_1) {
461: P = floor(start)
/* "_distortion.pyx":461 * h += 1 * elif start > stop: # negative contribution. Nota is start=stop: no contribution * P = floor(start) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if stop > P: # start and stop are in the same unit * A = calc_area(start, stop, slope, intercept) */ __pyx_v_P = floor(__pyx_v_start);
462: if stop > P: # start and stop are in the same unit
/* "_distortion.pyx":462 * elif start > stop: # negative contribution. Nota is start=stop: no contribution * P = floor(start) * if stop > P: # start and stop are in the same unit #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* A = calc_area(start, stop, slope, intercept) * if A != 0: */ __pyx_t_1 = (__pyx_v_stop > __pyx_v_P); if (__pyx_t_1) {
463: A = calc_area(start, stop, slope, intercept)
/* "_distortion.pyx":463 * P = floor(start) * if stop > P: # start and stop are in the same unit * A = calc_area(start, stop, slope, intercept) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if A != 0: * AA = fabs(A) */ __pyx_v_A = __pyx_f_11_distortion_calc_area(__pyx_v_start, __pyx_v_stop, __pyx_v_slope, __pyx_v_intercept, 0);
464: if A != 0:
/* "_distortion.pyx":464 * if stop > P: # start and stop are in the same unit * A = calc_area(start, stop, slope, intercept) * if A != 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = fabs(A) * sign = A / AA */ __pyx_t_1 = (__pyx_v_A != 0.0); if (__pyx_t_1) {
465: AA = fabs(A)
/* "_distortion.pyx":465 * A = calc_area(start, stop, slope, intercept) * if A != 0: * AA = fabs(A) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* sign = A / AA * dA = (start - stop) # always positive */ __pyx_v_AA = fabs(__pyx_v_A);
466: sign = A / AA
/* "_distortion.pyx":466 * if A != 0: * AA = fabs(A) * sign = A / AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = (start - stop) # always positive * h = 0 */ if (unlikely(__pyx_v_AA == 0)) { PyErr_Format(PyExc_ZeroDivisionError, "float division"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_v_sign = (__pyx_v_A / __pyx_v_AA);
467: dA = (start - stop) # always positive
/* "_distortion.pyx":467 * AA = fabs(A) * sign = A / AA * dA = (start - stop) # always positive #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h = 0 * while AA > 0: */ __pyx_v_dA = (__pyx_v_start - __pyx_v_stop);
468: h = 0
/* "_distortion.pyx":468 * sign = A / AA * dA = (start - stop) # always positive * h = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* while AA > 0: * if dA > AA: */ __pyx_v_h = 0;
469: while AA > 0:
/* "_distortion.pyx":469 * dA = (start - stop) # always positive * h = 0 * while AA > 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if dA > AA: * dA = AA */ while (1) { __pyx_t_1 = (__pyx_v_AA > 0.0); if (!__pyx_t_1) break;
470: if dA > AA:
/* "_distortion.pyx":470 * h = 0 * while AA > 0: * if dA > AA: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = AA * AA = -1 */ __pyx_t_1 = (__pyx_v_dA > __pyx_v_AA); if (__pyx_t_1) {
471: dA = AA
/* "_distortion.pyx":471 * while AA > 0: * if dA > AA: * dA = AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = -1 * self.box[(<
int> floor(start)), h] += sign * dA */ __pyx_v_dA = __pyx_v_AA;
472: AA = -1
/* "_distortion.pyx":472 * if dA > AA: * dA = AA * AA = -1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.box[(<
int> floor(start)), h] += sign * dA * AA -= dA */ __pyx_v_AA = -1.0; goto __pyx_L29; } __pyx_L29:;
473: self.box[(<int> floor(start)), h] += sign * dA
/* "_distortion.pyx":473 * dA = AA * AA = -1 * self.box[(<
int> floor(start)), h] += sign * dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA -= dA * h += 1 */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_t_10 = ((int)floor(__pyx_v_start)); __pyx_t_11 = __pyx_v_h; __pyx_t_12 = -1; if (__pyx_t_10<
0) { __pyx_t_10 += __pyx_v_self->box.shape[0]; if (unlikely(__pyx_t_10<
0)) __pyx_t_12 = 0; } else if (unlikely(__pyx_t_10 >= __pyx_v_self->box.shape[0])) __pyx_t_12 = 0; if (__pyx_t_11<
0) { __pyx_t_11 += __pyx_v_self->box.shape[1]; if (unlikely(__pyx_t_11<
0)) __pyx_t_12 = 1; } else if (unlikely(__pyx_t_11 >= __pyx_v_self->box.shape[1])) __pyx_t_12 = 1; if (unlikely(__pyx_t_12 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_12); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } *((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_self->box.data + __pyx_t_10 * __pyx_v_self->box.strides[0]) ) + __pyx_t_11 * __pyx_v_self->box.strides[1]) )) += (__pyx_v_sign * __pyx_v_dA);
474: AA -= dA
/* "_distortion.pyx":474 * AA = -1 * self.box[(<
int> floor(start)), h] += sign * dA * AA -= dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h += 1 * else: */ __pyx_v_AA = (__pyx_v_AA - __pyx_v_dA);
475: h += 1
/* "_distortion.pyx":475 * self.box[(<
int> floor(start)), h] += sign * dA * AA -= dA * h += 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* else: * dP = P - start */ __pyx_v_h = (__pyx_v_h + 1); } goto __pyx_L26; } __pyx_L26:; goto __pyx_L25; } /*else*/ {
476: else:
477: dP = P - start
/* "_distortion.pyx":477 * h += 1 * else: * dP = P - start #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if dP<
0: * A = calc_area(start, P, slope, intercept) */ __pyx_v_dP = (__pyx_v_P - __pyx_v_start);
478: if dP < 0:
/* "_distortion.pyx":478 * else: * dP = P - start * if dP<
0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* A = calc_area(start, P, slope, intercept) * if A != 0: */ __pyx_t_1 = (__pyx_v_dP<
0.0); if (__pyx_t_1) {
479: A = calc_area(start, P, slope, intercept)
/* "_distortion.pyx":479 * dP = P - start * if dP<
0: * A = calc_area(start, P, slope, intercept) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if A != 0: * AA = fabs(A) */ __pyx_v_A = __pyx_f_11_distortion_calc_area(__pyx_v_start, __pyx_v_P, __pyx_v_slope, __pyx_v_intercept, 0);
480: if A != 0:
/* "_distortion.pyx":480 * if dP<
0: * A = calc_area(start, P, slope, intercept) * if A != 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = fabs(A) * sign = A / AA */ __pyx_t_1 = (__pyx_v_A != 0.0); if (__pyx_t_1) {
481: AA = fabs(A)
/* "_distortion.pyx":481 * A = calc_area(start, P, slope, intercept) * if A != 0: * AA = fabs(A) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* sign = A / AA * h = 0 */ __pyx_v_AA = fabs(__pyx_v_A);
482: sign = A / AA
/* "_distortion.pyx":482 * if A != 0: * AA = fabs(A) * sign = A / AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h = 0 * dA = fabs(dP) */ if (unlikely(__pyx_v_AA == 0)) { PyErr_Format(PyExc_ZeroDivisionError, "float division"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_v_sign = (__pyx_v_A / __pyx_v_AA);
483: h = 0
/* "_distortion.pyx":483 * AA = fabs(A) * sign = A / AA * h = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = fabs(dP) * while AA > 0: */ __pyx_v_h = 0;
484: dA = fabs(dP)
/* "_distortion.pyx":484 * sign = A / AA * h = 0 * dA = fabs(dP) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* while AA > 0: * if dA > AA: */ __pyx_v_dA = fabs(__pyx_v_dP);
485: while AA > 0:
/* "_distortion.pyx":485 * h = 0 * dA = fabs(dP) * while AA > 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if dA > AA: * dA = AA */ while (1) { __pyx_t_1 = (__pyx_v_AA > 0.0); if (!__pyx_t_1) break;
486: if dA > AA:
/* "_distortion.pyx":486 * dA = fabs(dP) * while AA > 0: * if dA > AA: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = AA * AA = -1 */ __pyx_t_1 = (__pyx_v_dA > __pyx_v_AA); if (__pyx_t_1) {
487: dA = AA
/* "_distortion.pyx":487 * while AA > 0: * if dA > AA: * dA = AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = -1 * self.box[(<
int> floor(P)) , h] += sign * dA */ __pyx_v_dA = __pyx_v_AA;
488: AA = -1
/* "_distortion.pyx":488 * if dA > AA: * dA = AA * AA = -1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.box[(<
int> floor(P)) , h] += sign * dA * AA -= dA */ __pyx_v_AA = -1.0; goto __pyx_L34; } __pyx_L34:;
489: self.box[(<int> floor(P)) , h] += sign * dA
/* "_distortion.pyx":489 * dA = AA * AA = -1 * self.box[(<
int> floor(P)) , h] += sign * dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA -= dA * h += 1 */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_t_12 = ((int)floor(__pyx_v_P)); __pyx_t_13 = __pyx_v_h; __pyx_t_14 = -1; if (__pyx_t_12<
0) { __pyx_t_12 += __pyx_v_self->box.shape[0]; if (unlikely(__pyx_t_12<
0)) __pyx_t_14 = 0; } else if (unlikely(__pyx_t_12 >= __pyx_v_self->box.shape[0])) __pyx_t_14 = 0; if (__pyx_t_13<
0) { __pyx_t_13 += __pyx_v_self->box.shape[1]; if (unlikely(__pyx_t_13<
0)) __pyx_t_14 = 1; } else if (unlikely(__pyx_t_13 >= __pyx_v_self->box.shape[1])) __pyx_t_14 = 1; if (unlikely(__pyx_t_14 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_14); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } *((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_self->box.data + __pyx_t_12 * __pyx_v_self->box.strides[0]) ) + __pyx_t_13 * __pyx_v_self->box.strides[1]) )) += (__pyx_v_sign * __pyx_v_dA);
490: AA -= dA
/* "_distortion.pyx":490 * AA = -1 * self.box[(<
int> floor(P)) , h] += sign * dA * AA -= dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h += 1 * # subsection P1->Pn */ __pyx_v_AA = (__pyx_v_AA - __pyx_v_dA);
491: h += 1
/* "_distortion.pyx":491 * self.box[(<
int> floor(P)) , h] += sign * dA * AA -= dA * h += 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* # subsection P1->Pn * for i in range((<
int> start), (<
int> ceil(stop)), -1): */ __pyx_v_h = (__pyx_v_h + 1); } goto __pyx_L31; } __pyx_L31:; goto __pyx_L30; } __pyx_L30:;
492: # subsection P1->Pn
493: for i in range((<int> start), (<int> ceil(stop)), -1):
/* "_distortion.pyx":493 * h += 1 * # subsection P1->Pn * for i in range((<
int> start), (<
int> ceil(stop)), -1): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* A = calc_area(i, i - 1, slope, intercept) * if A != 0: */ __pyx_t_14 = ((int)ceil(__pyx_v_stop)); for (__pyx_t_15 = ((int)__pyx_v_start); __pyx_t_15 > __pyx_t_14; __pyx_t_15-=1) { __pyx_v_i = __pyx_t_15;
494: A = calc_area(i, i - 1, slope, intercept)
/* "_distortion.pyx":494 * # subsection P1->Pn * for i in range((<
int> start), (<
int> ceil(stop)), -1): * A = calc_area(i, i - 1, slope, intercept) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if A != 0: * AA = fabs(A) */ __pyx_v_A = __pyx_f_11_distortion_calc_area(__pyx_v_i, (__pyx_v_i - 1), __pyx_v_slope, __pyx_v_intercept, 0);
495: if A != 0:
/* "_distortion.pyx":495 * for i in range((<
int> start), (<
int> ceil(stop)), -1): * A = calc_area(i, i - 1, slope, intercept) * if A != 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = fabs(A) * sign = A / AA */ __pyx_t_1 = (__pyx_v_A != 0.0); if (__pyx_t_1) {
496: AA = fabs(A)
/* "_distortion.pyx":496 * A = calc_area(i, i - 1, slope, intercept) * if A != 0: * AA = fabs(A) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* sign = A / AA * h = 0 */ __pyx_v_AA = fabs(__pyx_v_A);
497: sign = A / AA
/* "_distortion.pyx":497 * if A != 0: * AA = fabs(A) * sign = A / AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h = 0 * dA = 1 */ if (unlikely(__pyx_v_AA == 0)) { PyErr_Format(PyExc_ZeroDivisionError, "float division"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_v_sign = (__pyx_v_A / __pyx_v_AA);
498: h = 0
/* "_distortion.pyx":498 * AA = fabs(A) * sign = A / AA * h = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = 1 * while AA > 0: */ __pyx_v_h = 0;
499: dA = 1
/* "_distortion.pyx":499 * sign = A / AA * h = 0 * dA = 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* while AA > 0: * if dA > AA: */ __pyx_v_dA = 1.0;
500: while AA > 0:
/* "_distortion.pyx":500 * h = 0 * dA = 1 * while AA > 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if dA > AA: * dA = AA */ while (1) { __pyx_t_1 = (__pyx_v_AA > 0.0); if (!__pyx_t_1) break;
501: if dA > AA:
/* "_distortion.pyx":501 * dA = 1 * while AA > 0: * if dA > AA: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = AA * AA = -1 */ __pyx_t_1 = (__pyx_v_dA > __pyx_v_AA); if (__pyx_t_1) {
502: dA = AA
/* "_distortion.pyx":502 * while AA > 0: * if dA > AA: * dA = AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = -1 * self.box[i - 1 , h] += sign * dA */ __pyx_v_dA = __pyx_v_AA;
503: AA = -1
/* "_distortion.pyx":503 * if dA > AA: * dA = AA * AA = -1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.box[i - 1 , h] += sign * dA * AA -= dA */ __pyx_v_AA = -1.0; goto __pyx_L40; } __pyx_L40:;
504: self.box[i - 1 , h] += sign * dA
/* "_distortion.pyx":504 * dA = AA * AA = -1 * self.box[i - 1 , h] += sign * dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA -= dA * h += 1 */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_t_16 = (__pyx_v_i - 1); __pyx_t_17 = __pyx_v_h; __pyx_t_18 = -1; if (__pyx_t_16<
0) { __pyx_t_16 += __pyx_v_self->box.shape[0]; if (unlikely(__pyx_t_16<
0)) __pyx_t_18 = 0; } else if (unlikely(__pyx_t_16 >= __pyx_v_self->box.shape[0])) __pyx_t_18 = 0; if (__pyx_t_17<
0) { __pyx_t_17 += __pyx_v_self->box.shape[1]; if (unlikely(__pyx_t_17<
0)) __pyx_t_18 = 1; } else if (unlikely(__pyx_t_17 >= __pyx_v_self->box.shape[1])) __pyx_t_18 = 1; if (unlikely(__pyx_t_18 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_18); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } *((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_self->box.data + __pyx_t_16 * __pyx_v_self->box.strides[0]) ) + __pyx_t_17 * __pyx_v_self->box.strides[1]) )) += (__pyx_v_sign * __pyx_v_dA);
505: AA -= dA
/* "_distortion.pyx":505 * AA = -1 * self.box[i - 1 , h] += sign * dA * AA -= dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h += 1 * # Section Pn->B */ __pyx_v_AA = (__pyx_v_AA - __pyx_v_dA);
506: h += 1
/* "_distortion.pyx":506 * self.box[i - 1 , h] += sign * dA * AA -= dA * h += 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* # Section Pn->B * P = ceil(stop) */ __pyx_v_h = (__pyx_v_h + 1); } goto __pyx_L37; } __pyx_L37:; }
507: # Section Pn->B
508: P = ceil(stop)
/* "_distortion.pyx":508 * h += 1 * # Section Pn->B * P = ceil(stop) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dP = stop - P * if dP<
0: */ __pyx_v_P = ceil(__pyx_v_stop);
509: dP = stop - P
/* "_distortion.pyx":509 * # Section Pn->B * P = ceil(stop) * dP = stop - P #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if dP<
0: * A = calc_area(P, stop, slope, intercept) */ __pyx_v_dP = (__pyx_v_stop - __pyx_v_P);
510: if dP < 0:
/* "_distortion.pyx":510 * P = ceil(stop) * dP = stop - P * if dP<
0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* A = calc_area(P, stop, slope, intercept) * if A != 0: */ __pyx_t_1 = (__pyx_v_dP<
0.0); if (__pyx_t_1) {
511: A = calc_area(P, stop, slope, intercept)
/* "_distortion.pyx":511 * dP = stop - P * if dP<
0: * A = calc_area(P, stop, slope, intercept) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if A != 0: * AA = fabs(A) */ __pyx_v_A = __pyx_f_11_distortion_calc_area(__pyx_v_P, __pyx_v_stop, __pyx_v_slope, __pyx_v_intercept, 0);
512: if A != 0:
/* "_distortion.pyx":512 * if dP<
0: * A = calc_area(P, stop, slope, intercept) * if A != 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA = fabs(A) * sign = A / AA */ __pyx_t_1 = (__pyx_v_A != 0.0); if (__pyx_t_1) {
513: AA = fabs(A)
/* "_distortion.pyx":513 * A = calc_area(P, stop, slope, intercept) * if A != 0: * AA = fabs(A) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* sign = A / AA * h = 0 */ __pyx_v_AA = fabs(__pyx_v_A);
514: sign = A / AA
/* "_distortion.pyx":514 * if A != 0: * AA = fabs(A) * sign = A / AA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h = 0 * dA = fabs(dP) */ if (unlikely(__pyx_v_AA == 0)) { PyErr_Format(PyExc_ZeroDivisionError, "float division"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_v_sign = (__pyx_v_A / __pyx_v_AA);
515: h = 0
/* "_distortion.pyx":515 * AA = fabs(A) * sign = A / AA * h = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = fabs(dP) * while AA > 0: */ __pyx_v_h = 0;
516: dA = fabs(dP)
/* "_distortion.pyx":516 * sign = A / AA * h = 0 * dA = fabs(dP) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* while AA > 0: * if dA > AA: */ __pyx_v_dA = fabs(__pyx_v_dP);
517: while AA > 0:
/* "_distortion.pyx":517 * h = 0 * dA = fabs(dP) * while AA > 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if dA > AA: * dA = AA; AA = -1 */ while (1) { __pyx_t_1 = (__pyx_v_AA > 0.0); if (!__pyx_t_1) break;
518: if dA > AA:
/* "_distortion.pyx":518 * dA = fabs(dP) * while AA > 0: * if dA > AA: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dA = AA; AA = -1 * self.box[(<
int> floor(stop)), h] += sign * dA */ __pyx_t_1 = (__pyx_v_dA > __pyx_v_AA); if (__pyx_t_1) {
519: dA = AA; AA = -1
/* "_distortion.pyx":519 * while AA > 0: * if dA > AA: * dA = AA; AA = -1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.box[(<
int> floor(stop)), h] += sign * dA * AA -= dA */ __pyx_v_dA = __pyx_v_AA; __pyx_v_AA = -1.0; goto __pyx_L45; } __pyx_L45:;
520: self.box[(<int> floor(stop)), h] += sign * dA
/* "_distortion.pyx":520 * if dA > AA: * dA = AA; AA = -1 * self.box[(<
int> floor(stop)), h] += sign * dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* AA -= dA * h += 1 */ if (unlikely(!__pyx_v_self->box.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");{__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}} __pyx_t_14 = ((int)floor(__pyx_v_stop)); __pyx_t_15 = __pyx_v_h; __pyx_t_18 = -1; if (__pyx_t_14<
0) { __pyx_t_14 += __pyx_v_self->box.shape[0]; if (unlikely(__pyx_t_14<
0)) __pyx_t_18 = 0; } else if (unlikely(__pyx_t_14 >= __pyx_v_self->box.shape[0])) __pyx_t_18 = 0; if (__pyx_t_15<
0) { __pyx_t_15 += __pyx_v_self->box.shape[1]; if (unlikely(__pyx_t_15<
0)) __pyx_t_18 = 1; } else if (unlikely(__pyx_t_15 >= __pyx_v_self->box.shape[1])) __pyx_t_18 = 1; if (unlikely(__pyx_t_18 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_18); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } *((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_self->box.data + __pyx_t_14 * __pyx_v_self->box.strides[0]) ) + __pyx_t_15 * __pyx_v_self->box.strides[1]) )) += (__pyx_v_sign * __pyx_v_dA);
521: AA -= dA
/* "_distortion.pyx":521 * dA = AA; AA = -1 * self.box[(<
int> floor(stop)), h] += sign * dA * AA -= dA #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h += 1 * */ __pyx_v_AA = (__pyx_v_AA - __pyx_v_dA);
522: h += 1
/* "_distortion.pyx":522 * self.box[(<
int> floor(stop)), h] += sign * dA * AA -= dA * h += 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * class Distortion(object): */ __pyx_v_h = (__pyx_v_h + 1); } goto __pyx_L42; } __pyx_L42:; goto __pyx_L41; } __pyx_L41:; } __pyx_L25:; goto __pyx_L3; } __pyx_L3:; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("_distortion.Quad.integrate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11_distortion_10Distortion_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_11_distortion_10Distortion___init__[] = "\n @param detector: detector instance or detector name\n "; static PyMethodDef __pyx_mdef_11_distortion_10Distortion_1__init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pw_11_distortion_10Distortion_1__init__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_11_distortion_10Distortion___init__)}; static PyObject *__pyx_pw_11_distortion_10Distortion_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_self = 0; PyObject *__pyx_v_detector = 0; PyObject *__pyx_v_shape = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__detector,&__pyx_n_s__shape,0}; PyObject* values[3] = {0,0,0}; values[1] = ((PyObject *)((PyObject*)__pyx_n_s__detector));
523:
524: class Distortion(object):
/* "_distortion.pyx":524 * h += 1 * * class Distortion(object): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* """ * */ __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); /* "_distortion.pyx":524 * h += 1 * * class Distortion(object): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* """ * */ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_builtin_object); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_builtin_object); __Pyx_GIVEREF(__pyx_builtin_object); if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_146))<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_4 = __Pyx_CreateClass(((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_1), __pyx_n_s__Distortion, __pyx_n_s___distortion); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Distortion, __pyx_t_4)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
525: """
526:
527: This class applies a distortion correction on an image.
528:
529: It is also able to apply an inversion of the correction.
530:
531: """
532: def __init__(self, detector="detector", shape=None):
/* "_distortion.pyx":532 * * """ * def __init__(self, detector="detector", shape=None): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* """ * @param detector: detector instance or detector name */ values[2] = ((PyObject *)((PyObject *)Py_None)); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__detector); if (value) { values[1] = value; kw_args--; } } case 2: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__shape); if (value) { values[2] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__")<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 532; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_self = values[0]; __pyx_v_detector = values[1]; __pyx_v_shape = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 532; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("_distortion.Distortion.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11_distortion_10Distortion___init__(__pyx_self, __pyx_v_self, __pyx_v_detector, __pyx_v_shape); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_11_distortion_10Distortion___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_detector, PyObject *__pyx_v_shape) { PyObject *__pyx_v_i = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); /* "_distortion.pyx":532 * * """ * def __init__(self, detector="detector", shape=None): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* """ * @param detector: detector instance or detector name */ __pyx_k_tuple_130 = PyTuple_New(4); if (unlikely(!__pyx_k_tuple_130)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 532; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_130); __Pyx_INCREF(((PyObject *)__pyx_n_s__self)); PyTuple_SET_ITEM(__pyx_k_tuple_130, 0, ((PyObject *)__pyx_n_s__self)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__self)); __Pyx_INCREF(((PyObject *)__pyx_n_s__detector)); PyTuple_SET_ITEM(__pyx_k_tuple_130, 1, ((PyObject *)__pyx_n_s__detector)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__detector)); __Pyx_INCREF(((PyObject *)__pyx_n_s__shape)); PyTuple_SET_ITEM(__pyx_k_tuple_130, 2, ((PyObject *)__pyx_n_s__shape)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__shape)); __Pyx_INCREF(((PyObject *)__pyx_n_s__i)); PyTuple_SET_ITEM(__pyx_k_tuple_130, 3, ((PyObject *)__pyx_n_s__i)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__i)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_130)); __pyx_k_codeobj_131 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_130, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_132, __pyx_n_s____init__, 532, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_131)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 532; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "_distortion.pyx":532 * * """ * def __init__(self, detector="detector", shape=None): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* """ * @param detector: detector instance or detector name */ __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_11_distortion_10Distortion_1__init__, 0, NULL, __pyx_n_s___distortion, ((PyObject *)__pyx_k_codeobj_131)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 532; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, ((PyObject *)__pyx_k_tuple_133)); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s____init__, __pyx_t_2)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 532; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_k_tuple_133 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_133)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 532; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_133); __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_n_s__detector))); PyTuple_SET_ITEM(__pyx_k_tuple_133, 0, ((PyObject *)((PyObject*)__pyx_n_s__detector))); __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_n_s__detector))); __Pyx_INCREF(((PyObject *)Py_None)); PyTuple_SET_ITEM(__pyx_k_tuple_133, 1, ((PyObject *)Py_None)); __Pyx_GIVEREF(((PyObject *)Py_None)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_133));
533: """
534: @param detector: detector instance or detector name
535: """
536: if type(detector) in types.StringTypes:
/* "_distortion.pyx":536 * @param detector: detector instance or detector name * """ * if type(detector) in types.StringTypes: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.detector = detector_factory(detector) * else: # we assume it is a Detector instance */ __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__StringTypes); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__Pyx_PySequence_Contains(((PyObject *)Py_TYPE(__pyx_v_detector)), __pyx_t_2, Py_EQ)); if (unlikely(__pyx_t_3<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) {
537: self.detector = detector_factory(detector)
/* "_distortion.pyx":537 * """ * if type(detector) in types.StringTypes: * self.detector = detector_factory(detector) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* else: # we assume it is a Detector instance * self.detector = detector */ __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__detector_factory); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_detector); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_detector); __Pyx_GIVEREF(__pyx_v_detector); __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__detector, __pyx_t_4)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L3; } /*else*/ {
538: else: # we assume it is a Detector instance
539: self.detector = detector
/* "_distortion.pyx":539 * self.detector = detector_factory(detector) * else: # we assume it is a Detector instance * self.detector = detector #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if "max_shape" in dir(self.detector): * self.shape = self.detector.max_shape */ if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__detector, __pyx_v_detector)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 539; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_L3:;
540: if "max_shape" in dir(self.detector):
/* "_distortion.pyx":540 * else: # we assume it is a Detector instance * self.detector = detector * if "max_shape" in dir(self.detector): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.shape = self.detector.max_shape * else: */ __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__detector); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyObject_Dir(__pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_n_s__max_shape), __pyx_t_1, Py_EQ)); if (unlikely(__pyx_t_3<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) {
541: self.shape = self.detector.max_shape
/* "_distortion.pyx":541 * self.detector = detector * if "max_shape" in dir(self.detector): * self.shape = self.detector.max_shape #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* else: * self.shape = shape */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__detector); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 541; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__max_shape); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 541; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__shape, __pyx_t_4)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 541; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L4; } /*else*/ {
542: else:
543: self.shape = shape
/* "_distortion.pyx":543 * self.shape = self.detector.max_shape * else: * self.shape = shape #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.shape = tuple([int(i) for i in self.shape]) * self._sem = threading.Semaphore() */ if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__shape, __pyx_v_shape)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_L4:;
544: self.shape = tuple([int(i) for i in self.shape])
/* "_distortion.pyx":544 * else: * self.shape = shape * self.shape = tuple([int(i) for i in self.shape]) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self._sem = threading.Semaphore() * self.lut_size = None */ __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyList_CheckExact(__pyx_t_1) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = Py_TYPE(__pyx_t_2)->tp_iternext; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (!__pyx_t_6 && PyList_CheckExact(__pyx_t_2)) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #endif } else if (!__pyx_t_6 && PyTuple_CheckExact(__pyx_t_2)) { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #endif } else { __pyx_t_1 = __pyx_t_6(__pyx_t_2); if (unlikely(!__pyx_t_1)) { if (PyErr_Occurred()) { if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF(__pyx_v_i); __pyx_v_i = __pyx_t_1; __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_i); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_i); __Pyx_GIVEREF(__pyx_v_i); __pyx_t_7 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; if (unlikely(__Pyx_PyList_Append(__pyx_t_4, (PyObject*)__pyx_t_7))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = ((PyObject *)PyList_AsTuple(__pyx_t_4)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__shape, ((PyObject *)__pyx_t_2))<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
545: self._sem = threading.Semaphore()
/* "_distortion.pyx":545 * self.shape = shape * self.shape = tuple([int(i) for i in self.shape]) * self._sem = threading.Semaphore() #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.lut_size = None * self.pos = None */ __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__threading); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__Semaphore); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s___sem, __pyx_t_2)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
546: self.lut_size = None
/* "_distortion.pyx":546 * self.shape = tuple([int(i) for i in self.shape]) * self._sem = threading.Semaphore() * self.lut_size = None #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.pos = None * self.LUT = None */ if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__lut_size, Py_None)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 546; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
547: self.pos = None
/* "_distortion.pyx":547 * self._sem = threading.Semaphore() * self.lut_size = None * self.pos = None #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.LUT = None * self.delta0 = self.delta1 = None # max size of an pixel on a regular grid ... */ if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__pos, Py_None)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
548: self.LUT = None
/* "_distortion.pyx":548 * self.lut_size = None * self.pos = None * self.LUT = None #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.delta0 = self.delta1 = None # max size of an pixel on a regular grid ... * */ if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__LUT, Py_None)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
549: self.delta0 = self.delta1 = None # max size of an pixel on a regular grid ...
/* "_distortion.pyx":549 * self.pos = None * self.LUT = None * self.delta0 = self.delta1 = None # max size of an pixel on a regular grid ... #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * */ if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__delta0, Py_None)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__delta1, Py_None)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("_distortion.Distortion.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_i); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11_distortion_10Distortion_3__repr__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/ static PyMethodDef __pyx_mdef_11_distortion_10Distortion_3__repr__ = {__Pyx_NAMESTR("__repr__"), (PyCFunction)__pyx_pw_11_distortion_10Distortion_3__repr__, METH_O, __Pyx_DOCSTR(0)}; static PyObject *__pyx_pw_11_distortion_10Distortion_3__repr__(PyObject *__pyx_self, PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_11_distortion_10Distortion_2__repr__(__pyx_self, ((PyObject *)__pyx_v_self)); __Pyx_RefNannyFinishContext(); return __pyx_r; }
550:
551:
552: def __repr__(self):
/* "_distortion.pyx":552 * * * def __repr__(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return os.linesep.join(["Distortion correction for detector:", * self.detector.__repr__()]) */ static PyObject *__pyx_pf_11_distortion_10Distortion_2__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__", 0); /* "_distortion.pyx":552 * * * def __repr__(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return os.linesep.join(["Distortion correction for detector:", * self.detector.__repr__()]) */ __pyx_k_tuple_134 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_134)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_134); __Pyx_INCREF(((PyObject *)__pyx_n_s__self)); PyTuple_SET_ITEM(__pyx_k_tuple_134, 0, ((PyObject *)__pyx_n_s__self)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__self)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_134)); /* "_distortion.pyx":552 * * * def __repr__(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return os.linesep.join(["Distortion correction for detector:", * self.detector.__repr__()]) */ __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_11_distortion_10Distortion_3__repr__, 0, NULL, __pyx_n_s___distortion, ((PyObject *)__pyx_k_codeobj_135)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s____repr__, __pyx_t_2)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_k_codeobj_135 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_134, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_132, __pyx_n_s____repr__, 552, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_135)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
553: return os.linesep.join(["Distortion correction for detector:",
/* "_distortion.pyx":553 * * def __repr__(self): * return os.linesep.join(["Distortion correction for detector:", #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.detector.__repr__()]) * def calc_pos(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__os); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__linesep); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__join); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
554: self.detector.__repr__()])
/* "_distortion.pyx":554 * def __repr__(self): * return os.linesep.join(["Distortion correction for detector:", * self.detector.__repr__()]) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* def calc_pos(self): * if self.pos is None: */ __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__detector); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 554; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s____repr__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 554; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 554; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_kp_s_5)); PyList_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_kp_s_5)); __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_5)); PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_3)); __Pyx_GIVEREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("_distortion.Distortion.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11_distortion_10Distortion_5calc_pos(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/ static PyMethodDef __pyx_mdef_11_distortion_10Distortion_5calc_pos = {__Pyx_NAMESTR("calc_pos"), (PyCFunction)__pyx_pw_11_distortion_10Distortion_5calc_pos, METH_O, __Pyx_DOCSTR(0)}; static PyObject *__pyx_pw_11_distortion_10Distortion_5calc_pos(PyObject *__pyx_self, PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("calc_pos (wrapper)", 0); __pyx_r = __pyx_pf_11_distortion_10Distortion_4calc_pos(__pyx_self, ((PyObject *)__pyx_v_self)); __Pyx_RefNannyFinishContext(); return __pyx_r; }
555: def calc_pos(self):
/* "_distortion.pyx":555 * return os.linesep.join(["Distortion correction for detector:", * self.detector.__repr__()]) * def calc_pos(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.pos is None: * with self._sem: */ static PyObject *__pyx_pf_11_distortion_10Distortion_4calc_pos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { PyObject *__pyx_v_pos_corners = NULL; PyObject *__pyx_v_d1 = NULL; PyObject *__pyx_v_d2 = NULL; PyObject *__pyx_v_pos = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("calc_pos", 0); /* "_distortion.pyx":555 * return os.linesep.join(["Distortion correction for detector:", * self.detector.__repr__()]) * def calc_pos(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.pos is None: * with self._sem: */ __pyx_k_tuple_136 = PyTuple_New(5); if (unlikely(!__pyx_k_tuple_136)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_136); __Pyx_INCREF(((PyObject *)__pyx_n_s__self)); PyTuple_SET_ITEM(__pyx_k_tuple_136, 0, ((PyObject *)__pyx_n_s__self)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__self)); __Pyx_INCREF(((PyObject *)__pyx_n_s__pos_corners)); PyTuple_SET_ITEM(__pyx_k_tuple_136, 1, ((PyObject *)__pyx_n_s__pos_corners)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos_corners)); __Pyx_INCREF(((PyObject *)__pyx_n_s__d1)); PyTuple_SET_ITEM(__pyx_k_tuple_136, 2, ((PyObject *)__pyx_n_s__d1)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__d1)); __Pyx_INCREF(((PyObject *)__pyx_n_s__d2)); PyTuple_SET_ITEM(__pyx_k_tuple_136, 3, ((PyObject *)__pyx_n_s__d2)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__d2)); __Pyx_INCREF(((PyObject *)__pyx_n_s__pos)); PyTuple_SET_ITEM(__pyx_k_tuple_136, 4, ((PyObject *)__pyx_n_s__pos)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_136)); /* "_distortion.pyx":555 * return os.linesep.join(["Distortion correction for detector:", * self.detector.__repr__()]) * def calc_pos(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.pos is None: * with self._sem: */ __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_11_distortion_10Distortion_5calc_pos, 0, NULL, __pyx_n_s___distortion, ((PyObject *)__pyx_k_codeobj_137)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s__calc_pos, __pyx_t_2)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_k_codeobj_137 = (PyObject*)__Pyx_PyCode_New(1, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_132, __pyx_n_s__calc_pos, 555, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_137)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
556: if self.pos is None:
/* "_distortion.pyx":556 * self.detector.__repr__()]) * def calc_pos(self): * if self.pos is None: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* with self._sem: * if self.pos is None: */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__pos); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__pyx_t_1 == Py_None); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) {
557: with self._sem:
/* "_distortion.pyx":557 * def calc_pos(self): * if self.pos is None: * with self._sem: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.pos is None: * pos_corners = numpy.empty((self.shape[0] + 1, self.shape[1] + 1, 2), dtype=numpy.float64) */ /*with:*/ { __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___sem); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____exit__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____enter__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L4_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L4_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /*try:*/ { { __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); /*try:*/ { /* "_distortion.pyx":557 * def calc_pos(self): * if self.pos is None: * with self._sem: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.pos is None: * pos_corners = numpy.empty((self.shape[0] + 1, self.shape[1] + 1, 2), dtype=numpy.float64) */ /*except:*/ { __Pyx_AddTraceback("_distortion.Distortion.calc_pos", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_10, &__pyx_t_12, &__pyx_t_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_GOTREF(__pyx_t_12); __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); __Pyx_INCREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __Pyx_INCREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_15 = PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;} __Pyx_GOTREF(__pyx_t_15); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_15); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(__pyx_t_2<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;} __pyx_t_16 = (!__pyx_t_2); if (__pyx_t_16) { __Pyx_GIVEREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_1); __Pyx_ErrRestore(__pyx_t_10, __pyx_t_12, __pyx_t_1); __pyx_t_10 = 0; __pyx_t_12 = 0; __pyx_t_1 = 0; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;} goto __pyx_L21; } __pyx_L21:; __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L9_exception_handled; } __pyx_L10_except_error:; __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8); goto __pyx_L1_error; __pyx_L9_exception_handled:; __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8); __pyx_L15_try_end:; } } /*finally:*/ { if (__pyx_t_3) { __pyx_t_8 = PyObject_Call(__pyx_t_3, __pyx_k_tuple_59, NULL); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_8); __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_8); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(__pyx_t_16<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } } goto __pyx_L22; __pyx_L4_error:; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L1_error; __pyx_L22:; } goto __pyx_L3; } __pyx_L3:; /* "_distortion.pyx":557 * def calc_pos(self): * if self.pos is None: * with self._sem: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.pos is None: * pos_corners = numpy.empty((self.shape[0] + 1, self.shape[1] + 1, 2), dtype=numpy.float64) */ __pyx_k_tuple_59 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_59)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_59); __Pyx_INCREF(Py_None); PyTuple_SET_ITEM(__pyx_k_tuple_59, 0, Py_None); __Pyx_GIVEREF(Py_None); __Pyx_INCREF(Py_None); PyTuple_SET_ITEM(__pyx_k_tuple_59, 1, Py_None); __Pyx_GIVEREF(Py_None); __Pyx_INCREF(Py_None); PyTuple_SET_ITEM(__pyx_k_tuple_59, 2, Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_59));
558: if self.pos is None:
/* "_distortion.pyx":558 * if self.pos is None: * with self._sem: * if self.pos is None: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pos_corners = numpy.empty((self.shape[0] + 1, self.shape[1] + 1, 2), dtype=numpy.float64) * d1 = numpy.outer(numpy.arange(self.shape[0] + 1, dtype=numpy.float64), numpy.ones(self.shape[1] + 1, dtype=numpy.float64)) - 0.5 */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__pos); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__pyx_t_1 == Py_None); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) {
559: pos_corners = numpy.empty((self.shape[0] + 1, self.shape[1] + 1, 2), dtype=numpy.float64)
/* "_distortion.pyx":559 * with self._sem: * if self.pos is None: * pos_corners = numpy.empty((self.shape[0] + 1, self.shape[1] + 1, 2), dtype=numpy.float64) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* d1 = numpy.outer(numpy.arange(self.shape[0] + 1, dtype=numpy.float64), numpy.ones(self.shape[1] + 1, dtype=numpy.float64)) - 0.5 * d2 = numpy.outer(numpy.ones(self.shape[0] + 1, dtype=numpy.float64), numpy.arange(self.shape[1] + 1, dtype=numpy.float64)) - 0.5 */ __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__empty); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_1, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Add(__pyx_t_4, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_4, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Add(__pyx_t_9, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __Pyx_INCREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); __pyx_t_1 = 0; __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_9)); __Pyx_GIVEREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; __pyx_t_9 = PyDict_New(); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_9)); __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__float64); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_9, ((PyObject *)__pyx_n_s__dtype), __pyx_t_10)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_9)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; __pyx_v_pos_corners = __pyx_t_10; __pyx_t_10 = 0;
560: d1 = numpy.outer(numpy.arange(self.shape[0] + 1, dtype=numpy.float64), numpy.ones(self.shape[1] + 1, dtype=numpy.float64)) - 0.5
/* "_distortion.pyx":560 * if self.pos is None: * pos_corners = numpy.empty((self.shape[0] + 1, self.shape[1] + 1, 2), dtype=numpy.float64) * d1 = numpy.outer(numpy.arange(self.shape[0] + 1, dtype=numpy.float64), numpy.ones(self.shape[1] + 1, dtype=numpy.float64)) - 0.5 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* d2 = numpy.outer(numpy.ones(self.shape[0] + 1, dtype=numpy.float64), numpy.arange(self.shape[1] + 1, dtype=numpy.float64)) - 0.5 * pos_corners[:, :, 0], pos_corners[:, :, 1] = self.detector.calc_cartesian_positions(d1, d2) */ __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_9 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__outer); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__arange); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_10, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Add(__pyx_t_5, __pyx_int_1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_10)); __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_11 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__float64); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_10, ((PyObject *)__pyx_n_s__dtype), __pyx_t_11)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_5), ((PyObject *)__pyx_t_10)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_5 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__ones); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_10, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Add(__pyx_t_4, __pyx_int_1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_10)); __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__float64); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_10, ((PyObject *)__pyx_n_s__dtype), __pyx_t_12)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_10)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0; __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_12 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_t_10), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0; __pyx_t_10 = PyFloat_FromDouble(0.5); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_9 = PyNumber_Subtract(__pyx_t_12, __pyx_t_10); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_v_d1 = __pyx_t_9; __pyx_t_9 = 0;
561: d2 = numpy.outer(numpy.ones(self.shape[0] + 1, dtype=numpy.float64), numpy.arange(self.shape[1] + 1, dtype=numpy.float64)) - 0.5
/* "_distortion.pyx":561 * pos_corners = numpy.empty((self.shape[0] + 1, self.shape[1] + 1, 2), dtype=numpy.float64) * d1 = numpy.outer(numpy.arange(self.shape[0] + 1, dtype=numpy.float64), numpy.ones(self.shape[1] + 1, dtype=numpy.float64)) - 0.5 * d2 = numpy.outer(numpy.ones(self.shape[0] + 1, dtype=numpy.float64), numpy.arange(self.shape[1] + 1, dtype=numpy.float64)) - 0.5 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pos_corners[:, :, 0], pos_corners[:, :, 1] = self.detector.calc_cartesian_positions(d1, d2) * pos_corners[:, :, 0] /= self.detector.pixel1 */ __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__outer); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_12 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__ones); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_9, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_11) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyNumber_Add(__pyx_t_11, __pyx_int_1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyDict_New(); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_9)); __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__float64); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_9, ((PyObject *)__pyx_n_s__dtype), __pyx_t_5)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_Call(__pyx_t_12, ((PyObject *)__pyx_t_11), ((PyObject *)__pyx_t_9)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_11 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__arange); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_12 = __Pyx_GetItemInt(__pyx_t_9, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_12) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyNumber_Add(__pyx_t_12, __pyx_int_1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyDict_New(); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_9)); __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__float64); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_9, ((PyObject *)__pyx_n_s__dtype), __pyx_t_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_t_12), ((PyObject *)__pyx_t_9)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_5 = 0; __pyx_t_1 = 0; __pyx_t_1 = PyObject_Call(__pyx_t_10, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; __pyx_t_9 = PyFloat_FromDouble(0.5); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = PyNumber_Subtract(__pyx_t_1, __pyx_t_9); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_d2 = __pyx_t_10; __pyx_t_10 = 0;
562: pos_corners[:, :, 0], pos_corners[:, :, 1] = self.detector.calc_cartesian_positions(d1, d2)
/* "_distortion.pyx":562 * d1 = numpy.outer(numpy.arange(self.shape[0] + 1, dtype=numpy.float64), numpy.ones(self.shape[1] + 1, dtype=numpy.float64)) - 0.5 * d2 = numpy.outer(numpy.ones(self.shape[0] + 1, dtype=numpy.float64), numpy.arange(self.shape[1] + 1, dtype=numpy.float64)) - 0.5 * pos_corners[:, :, 0], pos_corners[:, :, 1] = self.detector.calc_cartesian_positions(d1, d2) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pos_corners[:, :, 0] /= self.detector.pixel1 * pos_corners[:, :, 1] /= self.detector.pixel2 */ __pyx_t_10 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__detector); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_9 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s_6); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_INCREF(__pyx_v_d1); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_d1); __Pyx_GIVEREF(__pyx_v_d1); __Pyx_INCREF(__pyx_v_d2); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_v_d2); __Pyx_GIVEREF(__pyx_v_d2); __pyx_t_1 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_t_10), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; #if CYTHON_COMPILING_IN_CPYTHON Py_ssize_t size = Py_SIZE(sequence); #else Py_ssize_t size = PySequence_Size(sequence); #endif if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L8_error;} } #if CYTHON_COMPILING_IN_CPYTHON if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_10 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_10 = PyList_GET_ITEM(sequence, 0); __pyx_t_9 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(__pyx_t_9); #else __pyx_t_10 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L8_error;} #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_5)->tp_iternext; index = 0; __pyx_t_10 = __pyx_t_13(__pyx_t_5); if (unlikely(!__pyx_t_10)) goto __pyx_L17_unpacking_failed; __Pyx_GOTREF(__pyx_t_10); index = 1; __pyx_t_9 = __pyx_t_13(__pyx_t_5); if (unlikely(!__pyx_t_9)) goto __pyx_L17_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_5), 2)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L18_unpacking_done; __pyx_L17_unpacking_failed:; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __pyx_L18_unpacking_done:; } /* "_distortion.pyx":562 * d1 = numpy.outer(numpy.arange(self.shape[0] + 1, dtype=numpy.float64), numpy.ones(self.shape[1] + 1, dtype=numpy.float64)) - 0.5 * d2 = numpy.outer(numpy.ones(self.shape[0] + 1, dtype=numpy.float64), numpy.arange(self.shape[1] + 1, dtype=numpy.float64)) - 0.5 * pos_corners[:, :, 0], pos_corners[:, :, 1] = self.detector.calc_cartesian_positions(d1, d2) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pos_corners[:, :, 0] /= self.detector.pixel1 * pos_corners[:, :, 1] /= self.detector.pixel2 */ __pyx_k_slice_7 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_7); __Pyx_GIVEREF(__pyx_k_slice_7); __pyx_k_slice_8 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_8); __Pyx_GIVEREF(__pyx_k_slice_8); if (PyObject_SetItem(__pyx_v_pos_corners, ((PyObject *)__pyx_k_tuple_9), __pyx_t_10)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_k_tuple_9 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_9); __Pyx_INCREF(__pyx_k_slice_7); PyTuple_SET_ITEM(__pyx_k_tuple_9, 0, __pyx_k_slice_7); __Pyx_GIVEREF(__pyx_k_slice_7); __Pyx_INCREF(__pyx_k_slice_8); PyTuple_SET_ITEM(__pyx_k_tuple_9, 1, __pyx_k_slice_8); __Pyx_GIVEREF(__pyx_k_slice_8); __Pyx_INCREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_k_tuple_9, 2, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_9)); __pyx_k_slice_10 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_10); __Pyx_GIVEREF(__pyx_k_slice_10); __pyx_k_slice_11 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_11); __Pyx_GIVEREF(__pyx_k_slice_11); if (PyObject_SetItem(__pyx_v_pos_corners, ((PyObject *)__pyx_k_tuple_12), __pyx_t_9)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_k_tuple_12 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_12); __Pyx_INCREF(__pyx_k_slice_10); PyTuple_SET_ITEM(__pyx_k_tuple_12, 0, __pyx_k_slice_10); __Pyx_GIVEREF(__pyx_k_slice_10); __Pyx_INCREF(__pyx_k_slice_11); PyTuple_SET_ITEM(__pyx_k_tuple_12, 1, __pyx_k_slice_11); __Pyx_GIVEREF(__pyx_k_slice_11); __Pyx_INCREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_k_tuple_12, 2, __pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_12));
563: pos_corners[:, :, 0] /= self.detector.pixel1
/* "_distortion.pyx":563 * d2 = numpy.outer(numpy.ones(self.shape[0] + 1, dtype=numpy.float64), numpy.arange(self.shape[1] + 1, dtype=numpy.float64)) - 0.5 * pos_corners[:, :, 0], pos_corners[:, :, 1] = self.detector.calc_cartesian_positions(d1, d2) * pos_corners[:, :, 0] /= self.detector.pixel1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pos_corners[:, :, 1] /= self.detector.pixel2 * pos = numpy.empty((self.shape[0], self.shape[1], 4, 2), dtype=numpy.float32) */ __pyx_k_slice_13 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_13); __Pyx_GIVEREF(__pyx_k_slice_13); __pyx_k_slice_14 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_14); __Pyx_GIVEREF(__pyx_k_slice_14); /* "_distortion.pyx":563 * d2 = numpy.outer(numpy.ones(self.shape[0] + 1, dtype=numpy.float64), numpy.arange(self.shape[1] + 1, dtype=numpy.float64)) - 0.5 * pos_corners[:, :, 0], pos_corners[:, :, 1] = self.detector.calc_cartesian_positions(d1, d2) * pos_corners[:, :, 0] /= self.detector.pixel1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pos_corners[:, :, 1] /= self.detector.pixel2 * pos = numpy.empty((self.shape[0], self.shape[1], 4, 2), dtype=numpy.float32) */ __Pyx_INCREF(((PyObject *)__pyx_k_tuple_15)); __pyx_t_14 = __pyx_k_tuple_15; __pyx_t_1 = PyObject_GetItem(__pyx_v_pos_corners, ((PyObject *)__pyx_t_14)); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__detector); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__pixel1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyNumber_InPlaceDivide(__pyx_t_1, __pyx_t_10); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (PyObject_SetItem(__pyx_v_pos_corners, ((PyObject *)__pyx_t_14), __pyx_t_9)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0; __pyx_k_tuple_15 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_15); __Pyx_INCREF(__pyx_k_slice_13); PyTuple_SET_ITEM(__pyx_k_tuple_15, 0, __pyx_k_slice_13); __Pyx_GIVEREF(__pyx_k_slice_13); __Pyx_INCREF(__pyx_k_slice_14); PyTuple_SET_ITEM(__pyx_k_tuple_15, 1, __pyx_k_slice_14); __Pyx_GIVEREF(__pyx_k_slice_14); __Pyx_INCREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_k_tuple_15, 2, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_15));
564: pos_corners[:, :, 1] /= self.detector.pixel2
/* "_distortion.pyx":564 * pos_corners[:, :, 0], pos_corners[:, :, 1] = self.detector.calc_cartesian_positions(d1, d2) * pos_corners[:, :, 0] /= self.detector.pixel1 * pos_corners[:, :, 1] /= self.detector.pixel2 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pos = numpy.empty((self.shape[0], self.shape[1], 4, 2), dtype=numpy.float32) * pos[:, :, 0, :] = pos_corners[:-1, :-1] */ __pyx_k_slice_16 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_16); __Pyx_GIVEREF(__pyx_k_slice_16); __pyx_k_slice_17 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_17); __Pyx_GIVEREF(__pyx_k_slice_17); /* "_distortion.pyx":564 * pos_corners[:, :, 0], pos_corners[:, :, 1] = self.detector.calc_cartesian_positions(d1, d2) * pos_corners[:, :, 0] /= self.detector.pixel1 * pos_corners[:, :, 1] /= self.detector.pixel2 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pos = numpy.empty((self.shape[0], self.shape[1], 4, 2), dtype=numpy.float32) * pos[:, :, 0, :] = pos_corners[:-1, :-1] */ __Pyx_INCREF(((PyObject *)__pyx_k_tuple_18)); __pyx_t_14 = __pyx_k_tuple_18; __pyx_t_9 = PyObject_GetItem(__pyx_v_pos_corners, ((PyObject *)__pyx_t_14)); if (!__pyx_t_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__detector); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_1 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__pixel2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyNumber_InPlaceDivide(__pyx_t_9, __pyx_t_1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyObject_SetItem(__pyx_v_pos_corners, ((PyObject *)__pyx_t_14), __pyx_t_10)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0; __pyx_k_tuple_18 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_18); __Pyx_INCREF(__pyx_k_slice_16); PyTuple_SET_ITEM(__pyx_k_tuple_18, 0, __pyx_k_slice_16); __Pyx_GIVEREF(__pyx_k_slice_16); __Pyx_INCREF(__pyx_k_slice_17); PyTuple_SET_ITEM(__pyx_k_tuple_18, 1, __pyx_k_slice_17); __Pyx_GIVEREF(__pyx_k_slice_17); __Pyx_INCREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_k_tuple_18, 2, __pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_18));
565: pos = numpy.empty((self.shape[0], self.shape[1], 4, 2), dtype=numpy.float32)
/* "_distortion.pyx":565 * pos_corners[:, :, 0] /= self.detector.pixel1 * pos_corners[:, :, 1] /= self.detector.pixel2 * pos = numpy.empty((self.shape[0], self.shape[1], 4, 2), dtype=numpy.float32) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pos[:, :, 0, :] = pos_corners[:-1, :-1] * pos[:, :, 1, :] = pos_corners[:-1, 1: ] */ __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_1 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__empty); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_10, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_10, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyTuple_New(4); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __Pyx_INCREF(__pyx_int_4); PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_int_4); __Pyx_GIVEREF(__pyx_int_4); __Pyx_INCREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_10, 3, __pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); __pyx_t_9 = 0; __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_10)); __Pyx_GIVEREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0; __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_10)); __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_12 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__float32); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (PyDict_SetItem(__pyx_t_10, ((PyObject *)__pyx_n_s__dtype), __pyx_t_12)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_5), ((PyObject *)__pyx_t_10)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0; __pyx_v_pos = __pyx_t_12; __pyx_t_12 = 0;
566: pos[:, :, 0, :] = pos_corners[:-1, :-1]
/* "_distortion.pyx":566 * pos_corners[:, :, 1] /= self.detector.pixel2 * pos = numpy.empty((self.shape[0], self.shape[1], 4, 2), dtype=numpy.float32) * pos[:, :, 0, :] = pos_corners[:-1, :-1] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pos[:, :, 1, :] = pos_corners[:-1, 1: ] * pos[:, :, 2, :] = pos_corners[1: , 1: ] */ __pyx_k_slice_19 = PySlice_New(Py_None, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_k_slice_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_19); __Pyx_GIVEREF(__pyx_k_slice_19); __pyx_k_slice_20 = PySlice_New(Py_None, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_k_slice_20)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_20); __Pyx_GIVEREF(__pyx_k_slice_20); /* "_distortion.pyx":566 * pos_corners[:, :, 1] /= self.detector.pixel2 * pos = numpy.empty((self.shape[0], self.shape[1], 4, 2), dtype=numpy.float32) * pos[:, :, 0, :] = pos_corners[:-1, :-1] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pos[:, :, 1, :] = pos_corners[:-1, 1: ] * pos[:, :, 2, :] = pos_corners[1: , 1: ] */ __pyx_t_12 = PyObject_GetItem(__pyx_v_pos_corners, ((PyObject *)__pyx_k_tuple_21)); if (!__pyx_t_12) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_12); __pyx_k_tuple_21 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_21)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_21); __Pyx_INCREF(__pyx_k_slice_19); PyTuple_SET_ITEM(__pyx_k_tuple_21, 0, __pyx_k_slice_19); __Pyx_GIVEREF(__pyx_k_slice_19); __Pyx_INCREF(__pyx_k_slice_20); PyTuple_SET_ITEM(__pyx_k_tuple_21, 1, __pyx_k_slice_20); __Pyx_GIVEREF(__pyx_k_slice_20); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_21)); __pyx_k_slice_22 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_22); __Pyx_GIVEREF(__pyx_k_slice_22); __pyx_k_slice_23 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_23)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_23); __Pyx_GIVEREF(__pyx_k_slice_23); __pyx_k_slice_24 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_24)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_24); __Pyx_GIVEREF(__pyx_k_slice_24); if (PyObject_SetItem(__pyx_v_pos, ((PyObject *)__pyx_k_tuple_25), __pyx_t_12)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_k_tuple_25 = PyTuple_New(4); if (unlikely(!__pyx_k_tuple_25)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_25); __Pyx_INCREF(__pyx_k_slice_22); PyTuple_SET_ITEM(__pyx_k_tuple_25, 0, __pyx_k_slice_22); __Pyx_GIVEREF(__pyx_k_slice_22); __Pyx_INCREF(__pyx_k_slice_23); PyTuple_SET_ITEM(__pyx_k_tuple_25, 1, __pyx_k_slice_23); __Pyx_GIVEREF(__pyx_k_slice_23); __Pyx_INCREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_k_tuple_25, 2, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_INCREF(__pyx_k_slice_24); PyTuple_SET_ITEM(__pyx_k_tuple_25, 3, __pyx_k_slice_24); __Pyx_GIVEREF(__pyx_k_slice_24); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_25));
567: pos[:, :, 1, :] = pos_corners[:-1, 1: ]
/* "_distortion.pyx":567 * pos = numpy.empty((self.shape[0], self.shape[1], 4, 2), dtype=numpy.float32) * pos[:, :, 0, :] = pos_corners[:-1, :-1] * pos[:, :, 1, :] = pos_corners[:-1, 1: ] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pos[:, :, 2, :] = pos_corners[1: , 1: ] * pos[:, :, 3, :] = pos_corners[1: , :-1] */ __pyx_k_slice_26 = PySlice_New(Py_None, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_k_slice_26)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_26); __Pyx_GIVEREF(__pyx_k_slice_26); __pyx_k_slice_27 = PySlice_New(__pyx_int_1, Py_None, Py_None); if (unlikely(!__pyx_k_slice_27)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_27); __Pyx_GIVEREF(__pyx_k_slice_27); /* "_distortion.pyx":567 * pos = numpy.empty((self.shape[0], self.shape[1], 4, 2), dtype=numpy.float32) * pos[:, :, 0, :] = pos_corners[:-1, :-1] * pos[:, :, 1, :] = pos_corners[:-1, 1: ] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pos[:, :, 2, :] = pos_corners[1: , 1: ] * pos[:, :, 3, :] = pos_corners[1: , :-1] */ __pyx_t_12 = PyObject_GetItem(__pyx_v_pos_corners, ((PyObject *)__pyx_k_tuple_28)); if (!__pyx_t_12) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_12); __pyx_k_tuple_28 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_28)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_28); __Pyx_INCREF(__pyx_k_slice_26); PyTuple_SET_ITEM(__pyx_k_tuple_28, 0, __pyx_k_slice_26); __Pyx_GIVEREF(__pyx_k_slice_26); __Pyx_INCREF(__pyx_k_slice_27); PyTuple_SET_ITEM(__pyx_k_tuple_28, 1, __pyx_k_slice_27); __Pyx_GIVEREF(__pyx_k_slice_27); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_28)); __pyx_k_slice_29 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_29)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_29); __Pyx_GIVEREF(__pyx_k_slice_29); __pyx_k_slice_30 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_30)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_30); __Pyx_GIVEREF(__pyx_k_slice_30); __pyx_k_slice_31 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_31)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_31); __Pyx_GIVEREF(__pyx_k_slice_31); if (PyObject_SetItem(__pyx_v_pos, ((PyObject *)__pyx_k_tuple_32), __pyx_t_12)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_k_tuple_32 = PyTuple_New(4); if (unlikely(!__pyx_k_tuple_32)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_32); __Pyx_INCREF(__pyx_k_slice_29); PyTuple_SET_ITEM(__pyx_k_tuple_32, 0, __pyx_k_slice_29); __Pyx_GIVEREF(__pyx_k_slice_29); __Pyx_INCREF(__pyx_k_slice_30); PyTuple_SET_ITEM(__pyx_k_tuple_32, 1, __pyx_k_slice_30); __Pyx_GIVEREF(__pyx_k_slice_30); __Pyx_INCREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_k_tuple_32, 2, __pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); __Pyx_INCREF(__pyx_k_slice_31); PyTuple_SET_ITEM(__pyx_k_tuple_32, 3, __pyx_k_slice_31); __Pyx_GIVEREF(__pyx_k_slice_31); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_32));
568: pos[:, :, 2, :] = pos_corners[1: , 1: ]
/* "_distortion.pyx":568 * pos[:, :, 0, :] = pos_corners[:-1, :-1] * pos[:, :, 1, :] = pos_corners[:-1, 1: ] * pos[:, :, 2, :] = pos_corners[1: , 1: ] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pos[:, :, 3, :] = pos_corners[1: , :-1] * self.pos = pos */ __pyx_k_slice_33 = PySlice_New(__pyx_int_1, Py_None, Py_None); if (unlikely(!__pyx_k_slice_33)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_33); __Pyx_GIVEREF(__pyx_k_slice_33); __pyx_k_slice_34 = PySlice_New(__pyx_int_1, Py_None, Py_None); if (unlikely(!__pyx_k_slice_34)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_34); __Pyx_GIVEREF(__pyx_k_slice_34); /* "_distortion.pyx":568 * pos[:, :, 0, :] = pos_corners[:-1, :-1] * pos[:, :, 1, :] = pos_corners[:-1, 1: ] * pos[:, :, 2, :] = pos_corners[1: , 1: ] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pos[:, :, 3, :] = pos_corners[1: , :-1] * self.pos = pos */ __pyx_t_12 = PyObject_GetItem(__pyx_v_pos_corners, ((PyObject *)__pyx_k_tuple_35)); if (!__pyx_t_12) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_12); __pyx_k_tuple_35 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_35)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_35); __Pyx_INCREF(__pyx_k_slice_33); PyTuple_SET_ITEM(__pyx_k_tuple_35, 0, __pyx_k_slice_33); __Pyx_GIVEREF(__pyx_k_slice_33); __Pyx_INCREF(__pyx_k_slice_34); PyTuple_SET_ITEM(__pyx_k_tuple_35, 1, __pyx_k_slice_34); __Pyx_GIVEREF(__pyx_k_slice_34); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_35)); __pyx_k_slice_36 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_36)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_36); __Pyx_GIVEREF(__pyx_k_slice_36); __pyx_k_slice_37 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_37)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_37); __Pyx_GIVEREF(__pyx_k_slice_37); __pyx_k_slice_38 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_38)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_38); __Pyx_GIVEREF(__pyx_k_slice_38); if (PyObject_SetItem(__pyx_v_pos, ((PyObject *)__pyx_k_tuple_39), __pyx_t_12)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_k_tuple_39 = PyTuple_New(4); if (unlikely(!__pyx_k_tuple_39)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_39); __Pyx_INCREF(__pyx_k_slice_36); PyTuple_SET_ITEM(__pyx_k_tuple_39, 0, __pyx_k_slice_36); __Pyx_GIVEREF(__pyx_k_slice_36); __Pyx_INCREF(__pyx_k_slice_37); PyTuple_SET_ITEM(__pyx_k_tuple_39, 1, __pyx_k_slice_37); __Pyx_GIVEREF(__pyx_k_slice_37); __Pyx_INCREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_k_tuple_39, 2, __pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); __Pyx_INCREF(__pyx_k_slice_38); PyTuple_SET_ITEM(__pyx_k_tuple_39, 3, __pyx_k_slice_38); __Pyx_GIVEREF(__pyx_k_slice_38); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_39));
569: pos[:, :, 3, :] = pos_corners[1: , :-1]
/* "_distortion.pyx":569 * pos[:, :, 1, :] = pos_corners[:-1, 1: ] * pos[:, :, 2, :] = pos_corners[1: , 1: ] * pos[:, :, 3, :] = pos_corners[1: , :-1] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.pos = pos * self.delta0 = int((numpy.ceil(pos_corners[1:, :, 0]) - numpy.floor(pos_corners[:-1, :, 0])).max()) */ __pyx_k_slice_40 = PySlice_New(__pyx_int_1, Py_None, Py_None); if (unlikely(!__pyx_k_slice_40)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_40); __Pyx_GIVEREF(__pyx_k_slice_40); __pyx_k_slice_41 = PySlice_New(Py_None, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_k_slice_41)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_41); __Pyx_GIVEREF(__pyx_k_slice_41); /* "_distortion.pyx":569 * pos[:, :, 1, :] = pos_corners[:-1, 1: ] * pos[:, :, 2, :] = pos_corners[1: , 1: ] * pos[:, :, 3, :] = pos_corners[1: , :-1] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.pos = pos * self.delta0 = int((numpy.ceil(pos_corners[1:, :, 0]) - numpy.floor(pos_corners[:-1, :, 0])).max()) */ __pyx_t_12 = PyObject_GetItem(__pyx_v_pos_corners, ((PyObject *)__pyx_k_tuple_42)); if (!__pyx_t_12) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_12); __pyx_k_tuple_42 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_42)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_42); __Pyx_INCREF(__pyx_k_slice_40); PyTuple_SET_ITEM(__pyx_k_tuple_42, 0, __pyx_k_slice_40); __Pyx_GIVEREF(__pyx_k_slice_40); __Pyx_INCREF(__pyx_k_slice_41); PyTuple_SET_ITEM(__pyx_k_tuple_42, 1, __pyx_k_slice_41); __Pyx_GIVEREF(__pyx_k_slice_41); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_42)); __pyx_k_slice_43 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_43)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_43); __Pyx_GIVEREF(__pyx_k_slice_43); __pyx_k_slice_44 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_44)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_44); __Pyx_GIVEREF(__pyx_k_slice_44); __pyx_k_slice_45 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_45)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_45); __Pyx_GIVEREF(__pyx_k_slice_45); if (PyObject_SetItem(__pyx_v_pos, ((PyObject *)__pyx_k_tuple_46), __pyx_t_12)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_k_tuple_46 = PyTuple_New(4); if (unlikely(!__pyx_k_tuple_46)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_46); __Pyx_INCREF(__pyx_k_slice_43); PyTuple_SET_ITEM(__pyx_k_tuple_46, 0, __pyx_k_slice_43); __Pyx_GIVEREF(__pyx_k_slice_43); __Pyx_INCREF(__pyx_k_slice_44); PyTuple_SET_ITEM(__pyx_k_tuple_46, 1, __pyx_k_slice_44); __Pyx_GIVEREF(__pyx_k_slice_44); __Pyx_INCREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_k_tuple_46, 2, __pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); __Pyx_INCREF(__pyx_k_slice_45); PyTuple_SET_ITEM(__pyx_k_tuple_46, 3, __pyx_k_slice_45); __Pyx_GIVEREF(__pyx_k_slice_45); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_46));
570: self.pos = pos
/* "_distortion.pyx":570 * pos[:, :, 2, :] = pos_corners[1: , 1: ] * pos[:, :, 3, :] = pos_corners[1: , :-1] * self.pos = pos #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.delta0 = int((numpy.ceil(pos_corners[1:, :, 0]) - numpy.floor(pos_corners[:-1, :, 0])).max()) * self.delta1 = int((numpy.ceil(pos_corners[:, 1:, 1]) - numpy.floor(pos_corners[:, :-1, 1])).max()) */ if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__pos, __pyx_v_pos)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
571: self.delta0 = int((numpy.ceil(pos_corners[1:, :, 0]) - numpy.floor(pos_corners[:-1, :, 0])).max())
/* "_distortion.pyx":571 * pos[:, :, 3, :] = pos_corners[1: , :-1] * self.pos = pos * self.delta0 = int((numpy.ceil(pos_corners[1:, :, 0]) - numpy.floor(pos_corners[:-1, :, 0])).max()) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.delta1 = int((numpy.ceil(pos_corners[:, 1:, 1]) - numpy.floor(pos_corners[:, :-1, 1])).max()) * return self.pos */ __pyx_t_12 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_12); __pyx_t_10 = PyObject_GetAttr(__pyx_t_12, __pyx_n_s__ceil); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; /* "_distortion.pyx":571 * pos[:, :, 3, :] = pos_corners[1: , :-1] * self.pos = pos * self.delta0 = int((numpy.ceil(pos_corners[1:, :, 0]) - numpy.floor(pos_corners[:-1, :, 0])).max()) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.delta1 = int((numpy.ceil(pos_corners[:, 1:, 1]) - numpy.floor(pos_corners[:, :-1, 1])).max()) * return self.pos */ __pyx_k_slice_47 = PySlice_New(__pyx_int_1, Py_None, Py_None); if (unlikely(!__pyx_k_slice_47)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_47); __Pyx_GIVEREF(__pyx_k_slice_47); __pyx_k_slice_48 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_48)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_48); __Pyx_GIVEREF(__pyx_k_slice_48); __pyx_t_12 = PyObject_GetItem(__pyx_v_pos_corners, ((PyObject *)__pyx_k_tuple_49)); if (!__pyx_t_12) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_12); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyObject_Call(__pyx_t_10, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_10 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__floor); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_k_tuple_49 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_49)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_49); __Pyx_INCREF(__pyx_k_slice_47); PyTuple_SET_ITEM(__pyx_k_tuple_49, 0, __pyx_k_slice_47); __Pyx_GIVEREF(__pyx_k_slice_47); __Pyx_INCREF(__pyx_k_slice_48); PyTuple_SET_ITEM(__pyx_k_tuple_49, 1, __pyx_k_slice_48); __Pyx_GIVEREF(__pyx_k_slice_48); __Pyx_INCREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_k_tuple_49, 2, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_49)); __pyx_k_slice_50 = PySlice_New(Py_None, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_k_slice_50)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_50); __Pyx_GIVEREF(__pyx_k_slice_50); __pyx_k_slice_51 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_51)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_51); __Pyx_GIVEREF(__pyx_k_slice_51); __pyx_t_5 = PyObject_GetItem(__pyx_v_pos_corners, ((PyObject *)__pyx_k_tuple_52)); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_Call(__pyx_t_10, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Subtract(__pyx_t_12, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__max); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__delta0, __pyx_t_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_k_tuple_52 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_52)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_52); __Pyx_INCREF(__pyx_k_slice_50); PyTuple_SET_ITEM(__pyx_k_tuple_52, 0, __pyx_k_slice_50); __Pyx_GIVEREF(__pyx_k_slice_50); __Pyx_INCREF(__pyx_k_slice_51); PyTuple_SET_ITEM(__pyx_k_tuple_52, 1, __pyx_k_slice_51); __Pyx_GIVEREF(__pyx_k_slice_51); __Pyx_INCREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_k_tuple_52, 2, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_52));
572: self.delta1 = int((numpy.ceil(pos_corners[:, 1:, 1]) - numpy.floor(pos_corners[:, :-1, 1])).max())
/* "_distortion.pyx":572 * self.pos = pos * self.delta0 = int((numpy.ceil(pos_corners[1:, :, 0]) - numpy.floor(pos_corners[:-1, :, 0])).max()) * self.delta1 = int((numpy.ceil(pos_corners[:, 1:, 1]) - numpy.floor(pos_corners[:, :-1, 1])).max()) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return self.pos * */ __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__ceil); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "_distortion.pyx":572 * self.pos = pos * self.delta0 = int((numpy.ceil(pos_corners[1:, :, 0]) - numpy.floor(pos_corners[:-1, :, 0])).max()) * self.delta1 = int((numpy.ceil(pos_corners[:, 1:, 1]) - numpy.floor(pos_corners[:, :-1, 1])).max()) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return self.pos * */ __pyx_k_slice_53 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_53)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_53); __Pyx_GIVEREF(__pyx_k_slice_53); __pyx_k_slice_54 = PySlice_New(__pyx_int_1, Py_None, Py_None); if (unlikely(!__pyx_k_slice_54)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_54); __Pyx_GIVEREF(__pyx_k_slice_54); __pyx_t_1 = PyObject_GetItem(__pyx_v_pos_corners, ((PyObject *)__pyx_k_tuple_55)); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_12), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_12); __pyx_t_5 = PyObject_GetAttr(__pyx_t_12, __pyx_n_s__floor); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_k_tuple_55 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_55)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_55); __Pyx_INCREF(__pyx_k_slice_53); PyTuple_SET_ITEM(__pyx_k_tuple_55, 0, __pyx_k_slice_53); __Pyx_GIVEREF(__pyx_k_slice_53); __Pyx_INCREF(__pyx_k_slice_54); PyTuple_SET_ITEM(__pyx_k_tuple_55, 1, __pyx_k_slice_54); __Pyx_GIVEREF(__pyx_k_slice_54); __Pyx_INCREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_k_tuple_55, 2, __pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_55)); __pyx_k_slice_56 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_56)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_56); __Pyx_GIVEREF(__pyx_k_slice_56); __pyx_k_slice_57 = PySlice_New(Py_None, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_k_slice_57)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_57); __Pyx_GIVEREF(__pyx_k_slice_57); __pyx_t_12 = PyObject_GetItem(__pyx_v_pos_corners, ((PyObject *)__pyx_k_tuple_58)); if (!__pyx_t_12) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_12); __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_10), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Subtract(__pyx_t_1, __pyx_t_12); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__max); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyObject_Call(__pyx_t_12, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_12), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0; if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__delta1, __pyx_t_10)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; goto __pyx_L16; } __pyx_L16:; } __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L15_try_end; __pyx_L8_error:; __Pyx_XDECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_k_tuple_58 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_58)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_58); __Pyx_INCREF(__pyx_k_slice_56); PyTuple_SET_ITEM(__pyx_k_tuple_58, 0, __pyx_k_slice_56); __Pyx_GIVEREF(__pyx_k_slice_56); __Pyx_INCREF(__pyx_k_slice_57); PyTuple_SET_ITEM(__pyx_k_tuple_58, 1, __pyx_k_slice_57); __Pyx_GIVEREF(__pyx_k_slice_57); __Pyx_INCREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_k_tuple_58, 2, __pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_58));
573: return self.pos
/* "_distortion.pyx":573 * self.delta0 = int((numpy.ceil(pos_corners[1:, :, 0]) - numpy.floor(pos_corners[:-1, :, 0])).max()) * self.delta1 = int((numpy.ceil(pos_corners[:, 1:, 1]) - numpy.floor(pos_corners[:, :-1, 1])).max()) * return self.pos #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * @cython.wraparound(False) */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__pos); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __Pyx_XDECREF(__pyx_t_12); __Pyx_XDECREF(((PyObject *)__pyx_t_14)); __Pyx_AddTraceback("_distortion.Distortion.calc_pos", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_pos_corners); __Pyx_XDECREF(__pyx_v_d1); __Pyx_XDECREF(__pyx_v_d2); __Pyx_XDECREF(__pyx_v_pos); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11_distortion_10Distortion_7calc_LUT_size(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/ static char __pyx_doc_11_distortion_10Distortion_6calc_LUT_size[] = "\n Considering the \"half-CCD\" spline from ID11 which describes a (1025,2048) detector,\n the physical location of pixels should go from:\n [-17.48634 : 1027.0543, -22.768829 : 2028.3689]\n We chose to discard pixels falling outside the [0:1025,0:2048] range with a lose of intensity\n\n We keep self.pos: pos_corners will not be compatible with systems showing non adjacent pixels (like some xpads)\n\n "; static PyMethodDef __pyx_mdef_11_distortion_10Distortion_7calc_LUT_size = {__Pyx_NAMESTR("calc_LUT_size"), (PyCFunction)__pyx_pw_11_distortion_10Distortion_7calc_LUT_size, METH_O, __Pyx_DOCSTR(__pyx_doc_11_distortion_10Distortion_6calc_LUT_size)}; static PyObject *__pyx_pw_11_distortion_10Distortion_7calc_LUT_size(PyObject *__pyx_self, PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("calc_LUT_size (wrapper)", 0); __pyx_r = __pyx_pf_11_distortion_10Distortion_6calc_LUT_size(__pyx_self, ((PyObject *)__pyx_v_self)); __Pyx_RefNannyFinishContext(); return __pyx_r; }
574:
575: @cython.wraparound(False)
576: @cython.boundscheck(False)
577: def calc_LUT_size(self):
/* "_distortion.pyx":577 * @cython.wraparound(False) * @cython.boundscheck(False) * def calc_LUT_size(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* """ * Considering the "half-CCD" spline from ID11 which describes a (1025,2048) detector, */ static PyObject *__pyx_pf_11_distortion_10Distortion_6calc_LUT_size(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { int __pyx_v_i; int __pyx_v_j; int __pyx_v_k; int __pyx_v_l; int __pyx_v_shape0; int __pyx_v_shape1; PyArrayObject *__pyx_v_pos = 0; __Pyx_memviewslice __pyx_v_pos0min = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_pos1min = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_pos0max = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_pos1max = { 0, 0, { 0 }, { 0 }, { 0 } }; PyArrayObject *__pyx_v_lut_size = 0; __Pyx_LocalBuf_ND __pyx_pybuffernd_lut_size; __Pyx_Buffer __pyx_pybuffer_lut_size; __Pyx_LocalBuf_ND __pyx_pybuffernd_pos; __Pyx_Buffer __pyx_pybuffer_pos; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("calc_LUT_size", 0); __pyx_pybuffer_pos.pybuffer.buf = NULL; __pyx_pybuffer_pos.refcount = 0; __pyx_pybuffernd_pos.data = NULL; __pyx_pybuffernd_pos.rcbuffer = &__pyx_pybuffer_pos; __pyx_pybuffer_lut_size.pybuffer.buf = NULL; __pyx_pybuffer_lut_size.refcount = 0; __pyx_pybuffernd_lut_size.data = NULL; __pyx_pybuffernd_lut_size.rcbuffer = &__pyx_pybuffer_lut_size; /* "_distortion.pyx":577 * @cython.wraparound(False) * @cython.boundscheck(False) * def calc_LUT_size(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* """ * Considering the "half-CCD" spline from ID11 which describes a (1025,2048) detector, */ __pyx_k_tuple_138 = PyTuple_New(13); if (unlikely(!__pyx_k_tuple_138)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_138); __Pyx_INCREF(((PyObject *)__pyx_n_s__self)); PyTuple_SET_ITEM(__pyx_k_tuple_138, 0, ((PyObject *)__pyx_n_s__self)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__self)); __Pyx_INCREF(((PyObject *)__pyx_n_s__i)); PyTuple_SET_ITEM(__pyx_k_tuple_138, 1, ((PyObject *)__pyx_n_s__i)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__i)); __Pyx_INCREF(((PyObject *)__pyx_n_s__j)); PyTuple_SET_ITEM(__pyx_k_tuple_138, 2, ((PyObject *)__pyx_n_s__j)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__j)); __Pyx_INCREF(((PyObject *)__pyx_n_s__k)); PyTuple_SET_ITEM(__pyx_k_tuple_138, 3, ((PyObject *)__pyx_n_s__k)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__k)); __Pyx_INCREF(((PyObject *)__pyx_n_s__l)); PyTuple_SET_ITEM(__pyx_k_tuple_138, 4, ((PyObject *)__pyx_n_s__l)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__l)); __Pyx_INCREF(((PyObject *)__pyx_n_s__shape0)); PyTuple_SET_ITEM(__pyx_k_tuple_138, 5, ((PyObject *)__pyx_n_s__shape0)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__shape0)); __Pyx_INCREF(((PyObject *)__pyx_n_s__shape1)); PyTuple_SET_ITEM(__pyx_k_tuple_138, 6, ((PyObject *)__pyx_n_s__shape1)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__shape1)); __Pyx_INCREF(((PyObject *)__pyx_n_s__pos)); PyTuple_SET_ITEM(__pyx_k_tuple_138, 7, ((PyObject *)__pyx_n_s__pos)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos)); __Pyx_INCREF(((PyObject *)__pyx_n_s__pos0min)); PyTuple_SET_ITEM(__pyx_k_tuple_138, 8, ((PyObject *)__pyx_n_s__pos0min)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos0min)); __Pyx_INCREF(((PyObject *)__pyx_n_s__pos1min)); PyTuple_SET_ITEM(__pyx_k_tuple_138, 9, ((PyObject *)__pyx_n_s__pos1min)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos1min)); __Pyx_INCREF(((PyObject *)__pyx_n_s__pos0max)); PyTuple_SET_ITEM(__pyx_k_tuple_138, 10, ((PyObject *)__pyx_n_s__pos0max)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos0max)); __Pyx_INCREF(((PyObject *)__pyx_n_s__pos1max)); PyTuple_SET_ITEM(__pyx_k_tuple_138, 11, ((PyObject *)__pyx_n_s__pos1max)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos1max)); __Pyx_INCREF(((PyObject *)__pyx_n_s__lut_size)); PyTuple_SET_ITEM(__pyx_k_tuple_138, 12, ((PyObject *)__pyx_n_s__lut_size)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__lut_size)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_138)); /* "_distortion.pyx":577 * @cython.wraparound(False) * @cython.boundscheck(False) * def calc_LUT_size(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* """ * Considering the "half-CCD" spline from ID11 which describes a (1025,2048) detector, */ __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_11_distortion_10Distortion_7calc_LUT_size, 0, NULL, __pyx_n_s___distortion, ((PyObject *)__pyx_k_codeobj_139)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s__calc_LUT_size, __pyx_t_2)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_k_codeobj_139 = (PyObject*)__Pyx_PyCode_New(1, 0, 13, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_138, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_132, __pyx_n_s__calc_LUT_size, 577, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_139)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
578: """
579: Considering the "half-CCD" spline from ID11 which describes a (1025,2048) detector,
580: the physical location of pixels should go from:
581: [-17.48634 : 1027.0543, -22.768829 : 2028.3689]
582: We chose to discard pixels falling outside the [0:1025,0:2048] range with a lose of intensity
583:
584: We keep self.pos: pos_corners will not be compatible with systems showing non adjacent pixels (like some xpads)
585:
586: """
587: cdef int i, j, k, l, shape0, shape1
588: cdef numpy.ndarray[numpy.float32_t, ndim = 4] pos
589: cdef int[:,:] pos0min, pos1min, pos0max, pos1max
590: cdef numpy.ndarray[numpy.int32_t, ndim = 2] lut_size
591: if self.pos is None:
/* "_distortion.pyx":591 * cdef int[:,:] pos0min, pos1min, pos0max, pos1max * cdef numpy.ndarray[numpy.int32_t, ndim = 2] lut_size * if self.pos is None: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pos = self.calc_pos() * else: */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__pos); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__pyx_t_1 == Py_None); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) {
592: pos = self.calc_pos()
/* "_distortion.pyx":592 * cdef numpy.ndarray[numpy.int32_t, ndim = 2] lut_size * if self.pos is None: * pos = self.calc_pos() #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* else: * pos = self.pos */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__calc_pos); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_4 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pos.rcbuffer->pybuffer); __pyx_t_5 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pos.rcbuffer->pybuffer, (PyObject*)__pyx_t_4, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 4, 0, __pyx_stack); if (unlikely(__pyx_t_5<
0)) { PyErr_Fetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pos.rcbuffer->pybuffer, (PyObject*)__pyx_v_pos, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 4, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_6); Py_XDECREF(__pyx_t_7); Py_XDECREF(__pyx_t_8); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_6, __pyx_t_7, __pyx_t_8); } } __pyx_pybuffernd_pos.diminfo[0].strides = __pyx_pybuffernd_pos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pos.diminfo[0].shape = __pyx_pybuffernd_pos.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pos.diminfo[1].strides = __pyx_pybuffernd_pos.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pos.diminfo[1].shape = __pyx_pybuffernd_pos.rcbuffer->pybuffer.shape[1]; __pyx_pybuffernd_pos.diminfo[2].strides = __pyx_pybuffernd_pos.rcbuffer->pybuffer.strides[2]; __pyx_pybuffernd_pos.diminfo[2].shape = __pyx_pybuffernd_pos.rcbuffer->pybuffer.shape[2]; __pyx_pybuffernd_pos.diminfo[3].strides = __pyx_pybuffernd_pos.rcbuffer->pybuffer.strides[3]; __pyx_pybuffernd_pos.diminfo[3].shape = __pyx_pybuffernd_pos.rcbuffer->pybuffer.shape[3]; if (unlikely(__pyx_t_5<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_4 = 0; __pyx_v_pos = ((PyArrayObject *)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L3; } /*else*/ {
593: else:
594: pos = self.pos
/* "_distortion.pyx":594 * pos = self.calc_pos() * else: * pos = self.pos #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.lut_size is None: * with self._sem: */ __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__pos); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_4 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pos.rcbuffer->pybuffer); __pyx_t_5 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pos.rcbuffer->pybuffer, (PyObject*)__pyx_t_4, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 4, 0, __pyx_stack); if (unlikely(__pyx_t_5<
0)) { PyErr_Fetch(&__pyx_t_8, &__pyx_t_7, &__pyx_t_6); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pos.rcbuffer->pybuffer, (PyObject*)__pyx_v_pos, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 4, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_7); Py_XDECREF(__pyx_t_6); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_8, __pyx_t_7, __pyx_t_6); } } __pyx_pybuffernd_pos.diminfo[0].strides = __pyx_pybuffernd_pos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pos.diminfo[0].shape = __pyx_pybuffernd_pos.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pos.diminfo[1].strides = __pyx_pybuffernd_pos.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pos.diminfo[1].shape = __pyx_pybuffernd_pos.rcbuffer->pybuffer.shape[1]; __pyx_pybuffernd_pos.diminfo[2].strides = __pyx_pybuffernd_pos.rcbuffer->pybuffer.strides[2]; __pyx_pybuffernd_pos.diminfo[2].shape = __pyx_pybuffernd_pos.rcbuffer->pybuffer.shape[2]; __pyx_pybuffernd_pos.diminfo[3].strides = __pyx_pybuffernd_pos.rcbuffer->pybuffer.strides[3]; __pyx_pybuffernd_pos.diminfo[3].shape = __pyx_pybuffernd_pos.rcbuffer->pybuffer.shape[3]; if (unlikely(__pyx_t_5<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_4 = 0; __pyx_v_pos = ((PyArrayObject *)__pyx_t_3); __pyx_t_3 = 0; } __pyx_L3:;
595: if self.lut_size is None:
/* "_distortion.pyx":595 * else: * pos = self.pos * if self.lut_size is None: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* with self._sem: * if self.lut_size is None: */ __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__lut_size); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 595; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = (__pyx_t_3 == Py_None); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_2) {
596: with self._sem:
/* "_distortion.pyx":596 * pos = self.pos * if self.lut_size is None: * with self._sem: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.lut_size is None: * shape0, shape1 = self.shape */ /*with:*/ { __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___sem); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s____exit__); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s____enter__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L5_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L5_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /*try:*/ { { __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_10); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_10); /*try:*/ { /* "_distortion.pyx":596 * pos = self.pos * if self.lut_size is None: * with self._sem: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.lut_size is None: * shape0, shape1 = self.shape */ /*except:*/ { __Pyx_AddTraceback("_distortion.Distortion.calc_LUT_size", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_15, &__pyx_t_11)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_GOTREF(__pyx_t_15); __Pyx_GOTREF(__pyx_t_11); __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_15); __Pyx_GIVEREF(__pyx_t_15); __Pyx_INCREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_11); __pyx_t_19 = PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} __Pyx_GOTREF(__pyx_t_19); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_19); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; if (unlikely(__pyx_t_2<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} __pyx_t_36 = (!__pyx_t_2); if (__pyx_t_36) { __Pyx_GIVEREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_11); __Pyx_ErrRestore(__pyx_t_3, __pyx_t_15, __pyx_t_11); __pyx_t_3 = 0; __pyx_t_15 = 0; __pyx_t_11 = 0; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} goto __pyx_L35; } __pyx_L35:; __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L10_exception_handled; } __pyx_L11_except_error:; __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_10); goto __pyx_L1_error; __pyx_L10_exception_handled:; __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_10); __pyx_L16_try_end:; } } /*finally:*/ { int __pyx_why; __pyx_why = 0; goto __pyx_L8; __pyx_L6: __pyx_why = 3; goto __pyx_L8; __pyx_L8:; if (__pyx_t_6) { __pyx_t_10 = PyObject_Call(__pyx_t_6, __pyx_k_tuple_76, NULL); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_36 = __Pyx_PyObject_IsTrue(__pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(__pyx_t_36<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } switch (__pyx_why) { case 3: goto __pyx_L0; } } goto __pyx_L36; __pyx_L5_error:; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L1_error; __pyx_L36:; } goto __pyx_L4; } __pyx_L4:; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_11); __PYX_XDEC_MEMVIEW(&__pyx_t_14, 1); __Pyx_XDECREF(__pyx_t_15); { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lut_size.rcbuffer->pybuffer); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pos.rcbuffer->pybuffer); __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} __Pyx_AddTraceback("_distortion.Distortion.calc_LUT_size", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; goto __pyx_L2; __pyx_L0:; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lut_size.rcbuffer->pybuffer); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pos.rcbuffer->pybuffer); __pyx_L2:; __Pyx_XDECREF((PyObject *)__pyx_v_pos); __PYX_XDEC_MEMVIEW(&__pyx_v_pos0min, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_pos1min, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_pos0max, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_pos1max, 1); __Pyx_XDECREF((PyObject *)__pyx_v_lut_size); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11_distortion_10Distortion_9calc_LUT(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/ static PyMethodDef __pyx_mdef_11_distortion_10Distortion_9calc_LUT = {__Pyx_NAMESTR("calc_LUT"), (PyCFunction)__pyx_pw_11_distortion_10Distortion_9calc_LUT, METH_O, __Pyx_DOCSTR(0)}; static PyObject *__pyx_pw_11_distortion_10Distortion_9calc_LUT(PyObject *__pyx_self, PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("calc_LUT (wrapper)", 0); __pyx_r = __pyx_pf_11_distortion_10Distortion_8calc_LUT(__pyx_self, ((PyObject *)__pyx_v_self)); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "_distortion.pyx":596 * pos = self.pos * if self.lut_size is None: * with self._sem: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.lut_size is None: * shape0, shape1 = self.shape */ __pyx_k_tuple_76 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_76)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_76); __Pyx_INCREF(Py_None); PyTuple_SET_ITEM(__pyx_k_tuple_76, 0, Py_None); __Pyx_GIVEREF(Py_None); __Pyx_INCREF(Py_None); PyTuple_SET_ITEM(__pyx_k_tuple_76, 1, Py_None); __Pyx_GIVEREF(Py_None); __Pyx_INCREF(Py_None); PyTuple_SET_ITEM(__pyx_k_tuple_76, 2, Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_76));
597: if self.lut_size is None:
/* "_distortion.pyx":597 * if self.lut_size is None: * with self._sem: * if self.lut_size is None: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* shape0, shape1 = self.shape * pos0min = numpy.floor(pos[:, :, :, 0].min(axis= -1)).astype(numpy.int32).clip(0, self.shape[0]) */ __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__lut_size); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 597; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = (__pyx_t_3 == Py_None); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_2) {
598: shape0, shape1 = self.shape
/* "_distortion.pyx":598 * with self._sem: * if self.lut_size is None: * shape0, shape1 = self.shape #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pos0min = numpy.floor(pos[:, :, :, 0].min(axis= -1)).astype(numpy.int32).clip(0, self.shape[0]) * pos1min = numpy.floor(pos[:, :, :, 1].min(axis= -1)).astype(numpy.int32).clip(0, self.shape[1]) */ __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 598; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { PyObject* sequence = __pyx_t_3; #if CYTHON_COMPILING_IN_CPYTHON Py_ssize_t size = Py_SIZE(sequence); #else Py_ssize_t size = PySequence_Size(sequence); #endif if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 598; __pyx_clineno = __LINE__; goto __pyx_L9_error;} } #if CYTHON_COMPILING_IN_CPYTHON if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_9 = PyList_GET_ITEM(sequence, 0); __pyx_t_1 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_1); #else __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 598; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 598; __pyx_clineno = __LINE__; goto __pyx_L9_error;} #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { Py_ssize_t index = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 598; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_12 = Py_TYPE(__pyx_t_11)->tp_iternext; index = 0; __pyx_t_9 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_9)) goto __pyx_L18_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); index = 1; __pyx_t_1 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_1)) goto __pyx_L18_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 598; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __pyx_t_12 = NULL; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L19_unpacking_done; __pyx_L18_unpacking_failed:; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_12 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 598; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __pyx_L19_unpacking_done:; } __pyx_t_5 = __Pyx_PyInt_AsInt(__pyx_t_9); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 598; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_13 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_13 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 598; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_shape0 = __pyx_t_5; __pyx_v_shape1 = __pyx_t_13;
599: pos0min = numpy.floor(pos[:, :, :, 0].min(axis= -1)).astype(numpy.int32).clip(0, self.shape[0])
/* "_distortion.pyx":599 * if self.lut_size is None: * shape0, shape1 = self.shape * pos0min = numpy.floor(pos[:, :, :, 0].min(axis= -1)).astype(numpy.int32).clip(0, self.shape[0]) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pos1min = numpy.floor(pos[:, :, :, 1].min(axis= -1)).astype(numpy.int32).clip(0, self.shape[1]) * pos0max = (numpy.ceil(pos[:, :, :, 0].max(axis= -1)).astype(numpy.int32) + 1).clip(0, self.shape[0]) */ __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__floor); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "_distortion.pyx":599 * if self.lut_size is None: * shape0, shape1 = self.shape * pos0min = numpy.floor(pos[:, :, :, 0].min(axis= -1)).astype(numpy.int32).clip(0, self.shape[0]) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pos1min = numpy.floor(pos[:, :, :, 1].min(axis= -1)).astype(numpy.int32).clip(0, self.shape[1]) * pos0max = (numpy.ceil(pos[:, :, :, 0].max(axis= -1)).astype(numpy.int32) + 1).clip(0, self.shape[0]) */ __pyx_k_slice_60 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_60)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_60); __Pyx_GIVEREF(__pyx_k_slice_60); __pyx_k_slice_61 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_61)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_61); __Pyx_GIVEREF(__pyx_k_slice_61); __pyx_k_slice_62 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_62)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_62); __Pyx_GIVEREF(__pyx_k_slice_62); __pyx_t_3 = PyObject_GetItem(((PyObject *)__pyx_v_pos), ((PyObject *)__pyx_k_tuple_63)); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__min); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__axis), __pyx_int_neg_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __pyx_t_11 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_t_3 = PyObject_GetAttr(__pyx_t_11, __pyx_n_s__astype); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_11); __pyx_t_1 = PyObject_GetAttr(__pyx_t_11, __pyx_n_s__int32); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_11), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0; __pyx_t_11 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__clip); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_t_14 = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(__pyx_t_3); if (unlikely(!__pyx_t_14.memview)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_pos0min = __pyx_t_14; __pyx_t_14.memview = NULL; __pyx_t_14.data = NULL; __pyx_k_tuple_63 = PyTuple_New(4); if (unlikely(!__pyx_k_tuple_63)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_63); __Pyx_INCREF(__pyx_k_slice_60); PyTuple_SET_ITEM(__pyx_k_tuple_63, 0, __pyx_k_slice_60); __Pyx_GIVEREF(__pyx_k_slice_60); __Pyx_INCREF(__pyx_k_slice_61); PyTuple_SET_ITEM(__pyx_k_tuple_63, 1, __pyx_k_slice_61); __Pyx_GIVEREF(__pyx_k_slice_61); __Pyx_INCREF(__pyx_k_slice_62); PyTuple_SET_ITEM(__pyx_k_tuple_63, 2, __pyx_k_slice_62); __Pyx_GIVEREF(__pyx_k_slice_62); __Pyx_INCREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_k_tuple_63, 3, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_63));
600: pos1min = numpy.floor(pos[:, :, :, 1].min(axis= -1)).astype(numpy.int32).clip(0, self.shape[1])
/* "_distortion.pyx":600 * shape0, shape1 = self.shape * pos0min = numpy.floor(pos[:, :, :, 0].min(axis= -1)).astype(numpy.int32).clip(0, self.shape[0]) * pos1min = numpy.floor(pos[:, :, :, 1].min(axis= -1)).astype(numpy.int32).clip(0, self.shape[1]) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pos0max = (numpy.ceil(pos[:, :, :, 0].max(axis= -1)).astype(numpy.int32) + 1).clip(0, self.shape[0]) * pos1max = (numpy.ceil(pos[:, :, :, 1].max(axis= -1)).astype(numpy.int32) + 1).clip(0, self.shape[1]) */ __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__floor); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "_distortion.pyx":600 * shape0, shape1 = self.shape * pos0min = numpy.floor(pos[:, :, :, 0].min(axis= -1)).astype(numpy.int32).clip(0, self.shape[0]) * pos1min = numpy.floor(pos[:, :, :, 1].min(axis= -1)).astype(numpy.int32).clip(0, self.shape[1]) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pos0max = (numpy.ceil(pos[:, :, :, 0].max(axis= -1)).astype(numpy.int32) + 1).clip(0, self.shape[0]) * pos1max = (numpy.ceil(pos[:, :, :, 1].max(axis= -1)).astype(numpy.int32) + 1).clip(0, self.shape[1]) */ __pyx_k_slice_64 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_64)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_64); __Pyx_GIVEREF(__pyx_k_slice_64); __pyx_k_slice_65 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_65)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_65); __Pyx_GIVEREF(__pyx_k_slice_65); __pyx_k_slice_66 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_66)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_66); __Pyx_GIVEREF(__pyx_k_slice_66); __pyx_t_3 = PyObject_GetItem(((PyObject *)__pyx_v_pos), ((PyObject *)__pyx_k_tuple_67)); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_11 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__min); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__axis), __pyx_int_neg_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __pyx_t_9 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_t_3 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__astype); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__int32); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; __pyx_t_9 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__clip); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_t_14 = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(__pyx_t_3); if (unlikely(!__pyx_t_14.memview)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_pos1min = __pyx_t_14; __pyx_t_14.memview = NULL; __pyx_t_14.data = NULL; __pyx_k_tuple_67 = PyTuple_New(4); if (unlikely(!__pyx_k_tuple_67)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_67); __Pyx_INCREF(__pyx_k_slice_64); PyTuple_SET_ITEM(__pyx_k_tuple_67, 0, __pyx_k_slice_64); __Pyx_GIVEREF(__pyx_k_slice_64); __Pyx_INCREF(__pyx_k_slice_65); PyTuple_SET_ITEM(__pyx_k_tuple_67, 1, __pyx_k_slice_65); __Pyx_GIVEREF(__pyx_k_slice_65); __Pyx_INCREF(__pyx_k_slice_66); PyTuple_SET_ITEM(__pyx_k_tuple_67, 2, __pyx_k_slice_66); __Pyx_GIVEREF(__pyx_k_slice_66); __Pyx_INCREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_k_tuple_67, 3, __pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_67));
601: pos0max = (numpy.ceil(pos[:, :, :, 0].max(axis= -1)).astype(numpy.int32) + 1).clip(0, self.shape[0])
/* "_distortion.pyx":601 * pos0min = numpy.floor(pos[:, :, :, 0].min(axis= -1)).astype(numpy.int32).clip(0, self.shape[0]) * pos1min = numpy.floor(pos[:, :, :, 1].min(axis= -1)).astype(numpy.int32).clip(0, self.shape[1]) * pos0max = (numpy.ceil(pos[:, :, :, 0].max(axis= -1)).astype(numpy.int32) + 1).clip(0, self.shape[0]) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pos1max = (numpy.ceil(pos[:, :, :, 1].max(axis= -1)).astype(numpy.int32) + 1).clip(0, self.shape[1]) * lut_size = numpy.zeros(self.shape, dtype=numpy.int32) */ __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__ceil); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "_distortion.pyx":601 * pos0min = numpy.floor(pos[:, :, :, 0].min(axis= -1)).astype(numpy.int32).clip(0, self.shape[0]) * pos1min = numpy.floor(pos[:, :, :, 1].min(axis= -1)).astype(numpy.int32).clip(0, self.shape[1]) * pos0max = (numpy.ceil(pos[:, :, :, 0].max(axis= -1)).astype(numpy.int32) + 1).clip(0, self.shape[0]) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pos1max = (numpy.ceil(pos[:, :, :, 1].max(axis= -1)).astype(numpy.int32) + 1).clip(0, self.shape[1]) * lut_size = numpy.zeros(self.shape, dtype=numpy.int32) */ __pyx_k_slice_68 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_68)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_68); __Pyx_GIVEREF(__pyx_k_slice_68); __pyx_k_slice_69 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_69)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_69); __Pyx_GIVEREF(__pyx_k_slice_69); __pyx_k_slice_70 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_70)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_70); __Pyx_GIVEREF(__pyx_k_slice_70); __pyx_t_3 = PyObject_GetItem(((PyObject *)__pyx_v_pos), ((PyObject *)__pyx_k_tuple_71)); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__max); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__axis), __pyx_int_neg_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __pyx_t_11 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_t_3 = PyObject_GetAttr(__pyx_t_11, __pyx_n_s__astype); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_11); __pyx_t_1 = PyObject_GetAttr(__pyx_t_11, __pyx_n_s__int32); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_11), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0; __pyx_t_11 = PyNumber_Add(__pyx_t_1, __pyx_int_1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_GetAttr(__pyx_t_11, __pyx_n_s__clip); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_11); __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_11, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_11), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0; __pyx_t_14 = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(__pyx_t_3); if (unlikely(!__pyx_t_14.memview)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_pos0max = __pyx_t_14; __pyx_t_14.memview = NULL; __pyx_t_14.data = NULL; __pyx_k_tuple_71 = PyTuple_New(4); if (unlikely(!__pyx_k_tuple_71)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_71); __Pyx_INCREF(__pyx_k_slice_68); PyTuple_SET_ITEM(__pyx_k_tuple_71, 0, __pyx_k_slice_68); __Pyx_GIVEREF(__pyx_k_slice_68); __Pyx_INCREF(__pyx_k_slice_69); PyTuple_SET_ITEM(__pyx_k_tuple_71, 1, __pyx_k_slice_69); __Pyx_GIVEREF(__pyx_k_slice_69); __Pyx_INCREF(__pyx_k_slice_70); PyTuple_SET_ITEM(__pyx_k_tuple_71, 2, __pyx_k_slice_70); __Pyx_GIVEREF(__pyx_k_slice_70); __Pyx_INCREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_k_tuple_71, 3, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_71));
602: pos1max = (numpy.ceil(pos[:, :, :, 1].max(axis= -1)).astype(numpy.int32) + 1).clip(0, self.shape[1])
/* "_distortion.pyx":602 * pos1min = numpy.floor(pos[:, :, :, 1].min(axis= -1)).astype(numpy.int32).clip(0, self.shape[1]) * pos0max = (numpy.ceil(pos[:, :, :, 0].max(axis= -1)).astype(numpy.int32) + 1).clip(0, self.shape[0]) * pos1max = (numpy.ceil(pos[:, :, :, 1].max(axis= -1)).astype(numpy.int32) + 1).clip(0, self.shape[1]) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* lut_size = numpy.zeros(self.shape, dtype=numpy.int32) * with nogil: */ __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_11 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__ceil); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "_distortion.pyx":602 * pos1min = numpy.floor(pos[:, :, :, 1].min(axis= -1)).astype(numpy.int32).clip(0, self.shape[1]) * pos0max = (numpy.ceil(pos[:, :, :, 0].max(axis= -1)).astype(numpy.int32) + 1).clip(0, self.shape[0]) * pos1max = (numpy.ceil(pos[:, :, :, 1].max(axis= -1)).astype(numpy.int32) + 1).clip(0, self.shape[1]) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* lut_size = numpy.zeros(self.shape, dtype=numpy.int32) * with nogil: */ __pyx_k_slice_72 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_72)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_72); __Pyx_GIVEREF(__pyx_k_slice_72); __pyx_k_slice_73 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_73)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_73); __Pyx_GIVEREF(__pyx_k_slice_73); __pyx_k_slice_74 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_74)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_slice_74); __Pyx_GIVEREF(__pyx_k_slice_74); __pyx_t_3 = PyObject_GetItem(((PyObject *)__pyx_v_pos), ((PyObject *)__pyx_k_tuple_75)); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__max); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__axis), __pyx_int_neg_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __pyx_t_9 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_t_3 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__astype); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_11 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__int32); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; __pyx_t_9 = PyNumber_Add(__pyx_t_11, __pyx_int_1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__clip); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_9, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; __pyx_t_14 = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(__pyx_t_3); if (unlikely(!__pyx_t_14.memview)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_pos1max = __pyx_t_14; __pyx_t_14.memview = NULL; __pyx_t_14.data = NULL; __pyx_k_tuple_75 = PyTuple_New(4); if (unlikely(!__pyx_k_tuple_75)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_75); __Pyx_INCREF(__pyx_k_slice_72); PyTuple_SET_ITEM(__pyx_k_tuple_75, 0, __pyx_k_slice_72); __Pyx_GIVEREF(__pyx_k_slice_72); __Pyx_INCREF(__pyx_k_slice_73); PyTuple_SET_ITEM(__pyx_k_tuple_75, 1, __pyx_k_slice_73); __Pyx_GIVEREF(__pyx_k_slice_73); __Pyx_INCREF(__pyx_k_slice_74); PyTuple_SET_ITEM(__pyx_k_tuple_75, 2, __pyx_k_slice_74); __Pyx_GIVEREF(__pyx_k_slice_74); __Pyx_INCREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_k_tuple_75, 3, __pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_75));
603: lut_size = numpy.zeros(self.shape, dtype=numpy.int32)
/* "_distortion.pyx":603 * pos0max = (numpy.ceil(pos[:, :, :, 0].max(axis= -1)).astype(numpy.int32) + 1).clip(0, self.shape[0]) * pos1max = (numpy.ceil(pos[:, :, :, 1].max(axis= -1)).astype(numpy.int32) + 1).clip(0, self.shape[1]) * lut_size = numpy.zeros(self.shape, dtype=numpy.int32) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* with nogil: * for i in range(shape0): */ __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__zeros); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_15 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__int32); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__dtype), __pyx_t_15)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_t_11), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __pyx_t_16 = ((PyArrayObject *)__pyx_t_15); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lut_size.rcbuffer->pybuffer); __pyx_t_13 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lut_size.rcbuffer->pybuffer, (PyObject*)__pyx_t_16, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_13<
0)) { PyErr_Fetch(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lut_size.rcbuffer->pybuffer, (PyObject*)__pyx_v_lut_size, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_19); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_17, __pyx_t_18, __pyx_t_19); } } __pyx_pybuffernd_lut_size.diminfo[0].strides = __pyx_pybuffernd_lut_size.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lut_size.diminfo[0].shape = __pyx_pybuffernd_lut_size.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_lut_size.diminfo[1].strides = __pyx_pybuffernd_lut_size.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_lut_size.diminfo[1].shape = __pyx_pybuffernd_lut_size.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_13<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L9_error;} } __pyx_t_16 = 0; __pyx_v_lut_size = ((PyArrayObject *)__pyx_t_15); __pyx_t_15 = 0;
604: with nogil:
/* "_distortion.pyx":604 * pos1max = (numpy.ceil(pos[:, :, :, 1].max(axis= -1)).astype(numpy.int32) + 1).clip(0, self.shape[1]) * lut_size = numpy.zeros(self.shape, dtype=numpy.int32) * with nogil: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* for i in range(shape0): * for j in range(shape1): */ { #ifdef WITH_THREAD PyThreadState *_save = NULL; #endif Py_UNBLOCK_THREADS /*try:*/ { /* "_distortion.pyx":604 * pos1max = (numpy.ceil(pos[:, :, :, 1].max(axis= -1)).astype(numpy.int32) + 1).clip(0, self.shape[1]) * lut_size = numpy.zeros(self.shape, dtype=numpy.int32) * with nogil: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* for i in range(shape0): * for j in range(shape1): */ /*finally:*/ { Py_BLOCK_THREADS } }
605: for i in range(shape0):
/* "_distortion.pyx":605 * lut_size = numpy.zeros(self.shape, dtype=numpy.int32) * with nogil: * for i in range(shape0): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* for j in range(shape1): * for k in range(pos0min[i, j],pos0max[i, j]): */ __pyx_t_13 = __pyx_v_shape0; for (__pyx_t_5 = 0; __pyx_t_5<
__pyx_t_13; __pyx_t_5+=1) { __pyx_v_i = __pyx_t_5;
606: for j in range(shape1):
/* "_distortion.pyx":606 * with nogil: * for i in range(shape0): * for j in range(shape1): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* for k in range(pos0min[i, j],pos0max[i, j]): * for l in range(pos1min[i, j],pos1max[i, j]): */ __pyx_t_20 = __pyx_v_shape1; for (__pyx_t_21 = 0; __pyx_t_21<
__pyx_t_20; __pyx_t_21+=1) { __pyx_v_j = __pyx_t_21;
607: for k in range(pos0min[i, j],pos0max[i, j]):
/* "_distortion.pyx":607 * for i in range(shape0): * for j in range(shape1): * for k in range(pos0min[i, j],pos0max[i, j]): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* for l in range(pos1min[i, j],pos1max[i, j]): * lut_size[k,l] += 1 */ __pyx_t_22 = __pyx_v_i; __pyx_t_23 = __pyx_v_j; __pyx_t_24 = (*((int *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_pos0max.data + __pyx_t_22 * __pyx_v_pos0max.strides[0]) ) + __pyx_t_23 * __pyx_v_pos0max.strides[1]) ))); __pyx_t_25 = __pyx_v_i; __pyx_t_26 = __pyx_v_j; for (__pyx_t_27 = (*((int *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_pos0min.data + __pyx_t_25 * __pyx_v_pos0min.strides[0]) ) + __pyx_t_26 * __pyx_v_pos0min.strides[1]) ))); __pyx_t_27<
__pyx_t_24; __pyx_t_27+=1) { __pyx_v_k = __pyx_t_27;
608: for l in range(pos1min[i, j],pos1max[i, j]):
/* "_distortion.pyx":608 * for j in range(shape1): * for k in range(pos0min[i, j],pos0max[i, j]): * for l in range(pos1min[i, j],pos1max[i, j]): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* lut_size[k,l] += 1 * self.lut_size = lut_size.max() */ __pyx_t_28 = __pyx_v_i; __pyx_t_29 = __pyx_v_j; __pyx_t_30 = (*((int *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_pos1max.data + __pyx_t_28 * __pyx_v_pos1max.strides[0]) ) + __pyx_t_29 * __pyx_v_pos1max.strides[1]) ))); __pyx_t_31 = __pyx_v_i; __pyx_t_32 = __pyx_v_j; for (__pyx_t_33 = (*((int *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_pos1min.data + __pyx_t_31 * __pyx_v_pos1min.strides[0]) ) + __pyx_t_32 * __pyx_v_pos1min.strides[1]) ))); __pyx_t_33<
__pyx_t_30; __pyx_t_33+=1) { __pyx_v_l = __pyx_t_33;
609: lut_size[k,l] += 1
/* "_distortion.pyx":609 * for k in range(pos0min[i, j],pos0max[i, j]): * for l in range(pos1min[i, j],pos1max[i, j]): * lut_size[k,l] += 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.lut_size = lut_size.max() * return lut_size */ __pyx_t_34 = __pyx_v_k; __pyx_t_35 = __pyx_v_l; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_lut_size.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_lut_size.diminfo[0].strides, __pyx_t_35, __pyx_pybuffernd_lut_size.diminfo[1].strides) += 1; } } } } }
610: self.lut_size = lut_size.max()
/* "_distortion.pyx":610 * for l in range(pos1min[i, j],pos1max[i, j]): * lut_size[k,l] += 1 * self.lut_size = lut_size.max() #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return lut_size * */ __pyx_t_15 = PyObject_GetAttr(((PyObject *)__pyx_v_lut_size), __pyx_n_s__max); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_15); __pyx_t_3 = PyObject_Call(__pyx_t_15, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__lut_size, __pyx_t_3)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__; goto __pyx_L9_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
611: return lut_size
/* "_distortion.pyx":611 * lut_size[k,l] += 1 * self.lut_size = lut_size.max() * return lut_size #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * @cython.wraparound(False) */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_lut_size)); __pyx_r = ((PyObject *)__pyx_v_lut_size); goto __pyx_L13_try_return; goto __pyx_L17; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; goto __pyx_L16_try_end; __pyx_L13_try_return:; __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_10); goto __pyx_L6; __pyx_L9_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_XDEC_MEMVIEW(&__pyx_t_14, 1);
612:
613: @cython.wraparound(False)
614: @cython.boundscheck(False)
615: @cython.cdivision(True)
616: def calc_LUT(self):
/* "_distortion.pyx":616 * @cython.boundscheck(False) * @cython.cdivision(True) * def calc_LUT(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cdef int i, j, ms, ml, ns, nl, shape0, shape1, delta0, delta1, buffer_size, i0, i1, size * cdef int offset0, offset1, box_size0, box_size1 */ static PyObject *__pyx_pf_11_distortion_10Distortion_8calc_LUT(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { int __pyx_v_i; int __pyx_v_j; int __pyx_v_ms; int __pyx_v_ml; int __pyx_v_ns; int __pyx_v_nl; int __pyx_v_shape0; int __pyx_v_shape1; int __pyx_v_buffer_size; int __pyx_v_size; int __pyx_v_offset0; int __pyx_v_offset1; int __pyx_v_box_size0; int __pyx_v_box_size1; __pyx_t_5numpy_int32_t __pyx_v_k; __pyx_t_5numpy_int32_t __pyx_v_idx; float __pyx_v_A0; float __pyx_v_A1; float __pyx_v_B0; float __pyx_v_B1; float __pyx_v_C0; float __pyx_v_C1; float __pyx_v_D0; float __pyx_v_D1; float __pyx_v_pAB; float __pyx_v_pBC; float __pyx_v_pCD; float __pyx_v_pDA; float __pyx_v_cAB; float __pyx_v_cBC; float __pyx_v_cCD; float __pyx_v_cDA; float __pyx_v_area; float __pyx_v_value; __Pyx_memviewslice __pyx_v_pos = { 0, 0, { 0 }, { 0 }, { 0 } }; PyArrayObject *__pyx_v_lut = 0; PyArrayObject *__pyx_v_outMax = 0; __Pyx_memviewslice __pyx_v_buffer = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_LocalBuf_ND __pyx_pybuffernd_lut; __Pyx_Buffer __pyx_pybuffer_lut; __Pyx_LocalBuf_ND __pyx_pybuffernd_outMax; __Pyx_Buffer __pyx_pybuffer_outMax; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("calc_LUT", 0); __pyx_pybuffer_lut.pybuffer.buf = NULL; __pyx_pybuffer_lut.refcount = 0; __pyx_pybuffernd_lut.data = NULL; __pyx_pybuffernd_lut.rcbuffer = &__pyx_pybuffer_lut; __pyx_pybuffer_outMax.pybuffer.buf = NULL; __pyx_pybuffer_outMax.refcount = 0; __pyx_pybuffernd_outMax.data = NULL; __pyx_pybuffernd_outMax.rcbuffer = &__pyx_pybuffer_outMax; /* "_distortion.pyx":616 * @cython.boundscheck(False) * @cython.cdivision(True) * def calc_LUT(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cdef int i, j, ms, ml, ns, nl, shape0, shape1, delta0, delta1, buffer_size, i0, i1, size * cdef int offset0, offset1, box_size0, box_size1 */ __pyx_k_tuple_140 = PyTuple_New(43); if (unlikely(!__pyx_k_tuple_140)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 616; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_140); __Pyx_INCREF(((PyObject *)__pyx_n_s__self)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 0, ((PyObject *)__pyx_n_s__self)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__self)); __Pyx_INCREF(((PyObject *)__pyx_n_s__i)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 1, ((PyObject *)__pyx_n_s__i)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__i)); __Pyx_INCREF(((PyObject *)__pyx_n_s__j)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 2, ((PyObject *)__pyx_n_s__j)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__j)); __Pyx_INCREF(((PyObject *)__pyx_n_s__ms)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 3, ((PyObject *)__pyx_n_s__ms)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__ms)); __Pyx_INCREF(((PyObject *)__pyx_n_s__ml)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 4, ((PyObject *)__pyx_n_s__ml)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__ml)); __Pyx_INCREF(((PyObject *)__pyx_n_s__ns)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 5, ((PyObject *)__pyx_n_s__ns)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__ns)); __Pyx_INCREF(((PyObject *)__pyx_n_s__nl)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 6, ((PyObject *)__pyx_n_s__nl)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__nl)); __Pyx_INCREF(((PyObject *)__pyx_n_s__shape0)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 7, ((PyObject *)__pyx_n_s__shape0)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__shape0)); __Pyx_INCREF(((PyObject *)__pyx_n_s__shape1)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 8, ((PyObject *)__pyx_n_s__shape1)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__shape1)); __Pyx_INCREF(((PyObject *)__pyx_n_s__delta0)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 9, ((PyObject *)__pyx_n_s__delta0)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__delta0)); __Pyx_INCREF(((PyObject *)__pyx_n_s__delta1)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 10, ((PyObject *)__pyx_n_s__delta1)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__delta1)); __Pyx_INCREF(((PyObject *)__pyx_n_s__buffer_size)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 11, ((PyObject *)__pyx_n_s__buffer_size)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__buffer_size)); __Pyx_INCREF(((PyObject *)__pyx_n_s__i0)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 12, ((PyObject *)__pyx_n_s__i0)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__i0)); __Pyx_INCREF(((PyObject *)__pyx_n_s__i1)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 13, ((PyObject *)__pyx_n_s__i1)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__i1)); __Pyx_INCREF(((PyObject *)__pyx_n_s__size)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 14, ((PyObject *)__pyx_n_s__size)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__size)); __Pyx_INCREF(((PyObject *)__pyx_n_s__offset0)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 15, ((PyObject *)__pyx_n_s__offset0)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__offset0)); __Pyx_INCREF(((PyObject *)__pyx_n_s__offset1)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 16, ((PyObject *)__pyx_n_s__offset1)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__offset1)); __Pyx_INCREF(((PyObject *)__pyx_n_s__box_size0)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 17, ((PyObject *)__pyx_n_s__box_size0)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__box_size0)); __Pyx_INCREF(((PyObject *)__pyx_n_s__box_size1)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 18, ((PyObject *)__pyx_n_s__box_size1)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__box_size1)); __Pyx_INCREF(((PyObject *)__pyx_n_s__k)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 19, ((PyObject *)__pyx_n_s__k)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__k)); __Pyx_INCREF(((PyObject *)__pyx_n_s__idx)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 20, ((PyObject *)__pyx_n_s__idx)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__idx)); __Pyx_INCREF(((PyObject *)__pyx_n_s__A0)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 21, ((PyObject *)__pyx_n_s__A0)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__A0)); __Pyx_INCREF(((PyObject *)__pyx_n_s__A1)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 22, ((PyObject *)__pyx_n_s__A1)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__A1)); __Pyx_INCREF(((PyObject *)__pyx_n_s__B0)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 23, ((PyObject *)__pyx_n_s__B0)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__B0)); __Pyx_INCREF(((PyObject *)__pyx_n_s__B1)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 24, ((PyObject *)__pyx_n_s__B1)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__B1)); __Pyx_INCREF(((PyObject *)__pyx_n_s__C0)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 25, ((PyObject *)__pyx_n_s__C0)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__C0)); __Pyx_INCREF(((PyObject *)__pyx_n_s__C1)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 26, ((PyObject *)__pyx_n_s__C1)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__C1)); __Pyx_INCREF(((PyObject *)__pyx_n_s__D0)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 27, ((PyObject *)__pyx_n_s__D0)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__D0)); __Pyx_INCREF(((PyObject *)__pyx_n_s__D1)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 28, ((PyObject *)__pyx_n_s__D1)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__D1)); __Pyx_INCREF(((PyObject *)__pyx_n_s__pAB)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 29, ((PyObject *)__pyx_n_s__pAB)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pAB)); __Pyx_INCREF(((PyObject *)__pyx_n_s__pBC)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 30, ((PyObject *)__pyx_n_s__pBC)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pBC)); __Pyx_INCREF(((PyObject *)__pyx_n_s__pCD)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 31, ((PyObject *)__pyx_n_s__pCD)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pCD)); __Pyx_INCREF(((PyObject *)__pyx_n_s__pDA)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 32, ((PyObject *)__pyx_n_s__pDA)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pDA)); __Pyx_INCREF(((PyObject *)__pyx_n_s__cAB)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 33, ((PyObject *)__pyx_n_s__cAB)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cAB)); __Pyx_INCREF(((PyObject *)__pyx_n_s__cBC)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 34, ((PyObject *)__pyx_n_s__cBC)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cBC)); __Pyx_INCREF(((PyObject *)__pyx_n_s__cCD)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 35, ((PyObject *)__pyx_n_s__cCD)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cCD)); __Pyx_INCREF(((PyObject *)__pyx_n_s__cDA)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 36, ((PyObject *)__pyx_n_s__cDA)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cDA)); __Pyx_INCREF(((PyObject *)__pyx_n_s__area)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 37, ((PyObject *)__pyx_n_s__area)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__area)); __Pyx_INCREF(((PyObject *)__pyx_n_s__value)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 38, ((PyObject *)__pyx_n_s__value)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__value)); __Pyx_INCREF(((PyObject *)__pyx_n_s__pos)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 39, ((PyObject *)__pyx_n_s__pos)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos)); __Pyx_INCREF(((PyObject *)__pyx_n_s__lut)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 40, ((PyObject *)__pyx_n_s__lut)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__lut)); __Pyx_INCREF(((PyObject *)__pyx_n_s__outMax)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 41, ((PyObject *)__pyx_n_s__outMax)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__outMax)); __Pyx_INCREF(((PyObject *)__pyx_n_s__buffer)); PyTuple_SET_ITEM(__pyx_k_tuple_140, 42, ((PyObject *)__pyx_n_s__buffer)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__buffer)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_140)); /* "_distortion.pyx":616 * @cython.boundscheck(False) * @cython.cdivision(True) * def calc_LUT(self): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cdef int i, j, ms, ml, ns, nl, shape0, shape1, delta0, delta1, buffer_size, i0, i1, size * cdef int offset0, offset1, box_size0, box_size1 */ __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_11_distortion_10Distortion_9calc_LUT, 0, NULL, __pyx_n_s___distortion, ((PyObject *)__pyx_k_codeobj_141)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 616; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s__calc_LUT, __pyx_t_2)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 616; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_k_codeobj_141 = (PyObject*)__Pyx_PyCode_New(1, 0, 43, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_140, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_132, __pyx_n_s__calc_LUT, 616, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_141)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 616; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
617: cdef int i, j, ms, ml, ns, nl, shape0, shape1, delta0, delta1, buffer_size, i0, i1, size
618: cdef int offset0, offset1, box_size0, box_size1
619: cdef numpy.int32_t k, idx=0
/* "_distortion.pyx":619 * cdef int i, j, ms, ml, ns, nl, shape0, shape1, delta0, delta1, buffer_size, i0, i1, size * cdef int offset0, offset1, box_size0, box_size1 * cdef numpy.int32_t k, idx=0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cdef float A0, A1, B0, B1, C0, C1, D0, D1, pAB, pBC, pCD, pDA, cAB, cBC, cCD, cDA, area, value * # cdef numpy.ndarray[numpy.float32_t, ndim = 3] pos */ __pyx_v_idx = 0;
620: cdef float A0, A1, B0, B1, C0, C1, D0, D1, pAB, pBC, pCD, pDA, cAB, cBC, cCD, cDA, area, value
621: # cdef numpy.ndarray[numpy.float32_t, ndim = 3] pos
622: cdef float[:,:,:,:] pos
623: cdef numpy.ndarray[lut_point, ndim = 3] lut
624: cdef numpy.ndarray[numpy.int32_t, ndim = 2] outMax = numpy.zeros(self.shape, dtype=numpy.int32)
/* "_distortion.pyx":624 * cdef float[:,:,:,:] pos * cdef numpy.ndarray[lut_point, ndim = 3] lut * cdef numpy.ndarray[numpy.int32_t, ndim = 2] outMax = numpy.zeros(self.shape, dtype=numpy.int32) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cdef float[:,:] buffer * #cdef float[:,:,:] pos */ __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__zeros); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__int32); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__dtype), __pyx_t_5)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_6 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_outMax.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { __pyx_v_outMax = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_outMax.rcbuffer->pybuffer.buf = NULL; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } else {__pyx_pybuffernd_outMax.diminfo[0].strides = __pyx_pybuffernd_outMax.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_outMax.diminfo[0].shape = __pyx_pybuffernd_outMax.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_outMax.diminfo[1].strides = __pyx_pybuffernd_outMax.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_outMax.diminfo[1].shape = __pyx_pybuffernd_outMax.rcbuffer->pybuffer.shape[1]; } } __pyx_t_6 = 0; __pyx_v_outMax = ((PyArrayObject *)__pyx_t_5); __pyx_t_5 = 0;
625: cdef float[:,:] buffer
626: #cdef float[:,:,:] pos
627: shape0, shape1 = self.shape
/* "_distortion.pyx":627 * cdef float[:,:] buffer * #cdef float[:,:,:] pos * shape0, shape1 = self.shape #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * if self.lut_size is None: */ __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { PyObject* sequence = __pyx_t_5; #if CYTHON_COMPILING_IN_CPYTHON Py_ssize_t size = Py_SIZE(sequence); #else Py_ssize_t size = PySequence_Size(sequence); #endif if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } #if CYTHON_COMPILING_IN_CPYTHON if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_1 = PyList_GET_ITEM(sequence, 0); __pyx_t_3 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); #else __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #endif __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else { Py_ssize_t index = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7 = Py_TYPE(__pyx_t_2)->tp_iternext; index = 0; __pyx_t_1 = __pyx_t_7(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L3_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); index = 1; __pyx_t_3 = __pyx_t_7(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_2), 2)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_7 = NULL; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L4_unpacking_done; __pyx_L3_unpacking_failed:; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_L4_unpacking_done:; } __pyx_t_8 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_9 = __Pyx_PyInt_AsInt(__pyx_t_3); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_shape0 = __pyx_t_8; __pyx_v_shape1 = __pyx_t_9;
628:
629: if self.lut_size is None:
/* "_distortion.pyx":629 * shape0, shape1 = self.shape * * if self.lut_size is None: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.calc_LUT_size() * if self.LUT is None: */ __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__lut_size); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 629; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_10 = (__pyx_t_5 == Py_None); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_10) {
630: self.calc_LUT_size()
/* "_distortion.pyx":630 * * if self.lut_size is None: * self.calc_LUT_size() #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.LUT is None: * with self._sem: */ __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__calc_LUT_size); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 630; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 630; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L5; } __pyx_L5:;
631: if self.LUT is None:
/* "_distortion.pyx":631 * if self.lut_size is None: * self.calc_LUT_size() * if self.LUT is None: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* with self._sem: * if self.LUT is None: */ __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__LUT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 631; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = (__pyx_t_3 == Py_None); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_10) {
632: with self._sem:
/* "_distortion.pyx":632 * self.calc_LUT_size() * if self.LUT is None: * with self._sem: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.LUT is None: * pos = self.pos#.reshape(shape0,shape1,4*sizeof(float)) */ /*with:*/ { __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___sem); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_11 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s____exit__); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_11); __pyx_t_5 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s____enter__); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L7_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L7_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /*try:*/ { { __Pyx_ExceptionSave(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); /*try:*/ { /* "_distortion.pyx":632 * self.calc_LUT_size() * if self.LUT is None: * with self._sem: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.LUT is None: * pos = self.pos#.reshape(shape0,shape1,4*sizeof(float)) */ /*except:*/ { __Pyx_AddTraceback("_distortion.Distortion.calc_LUT", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_5, &__pyx_t_2)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L13_except_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_2); __pyx_t_16 = PyTuple_New(3); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L13_except_error;} __Pyx_GOTREF(__pyx_t_16); __Pyx_INCREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_16, 2, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_20 = PyObject_Call(__pyx_t_11, __pyx_t_16, NULL); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_20)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L13_except_error;} __Pyx_GOTREF(__pyx_t_20); __pyx_t_63 = __Pyx_PyObject_IsTrue(__pyx_t_20); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; if (unlikely(__pyx_t_63<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L13_except_error;} __pyx_t_64 = (!__pyx_t_63); if (__pyx_t_64) { __Pyx_GIVEREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_2); __Pyx_ErrRestore(__pyx_t_1, __pyx_t_5, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_5 = 0; __pyx_t_2 = 0; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L13_except_error;} goto __pyx_L42; } __pyx_L42:; __Pyx_DECREF(((PyObject *)__pyx_t_16)); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L12_exception_handled; } __pyx_L13_except_error:; __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); goto __pyx_L1_error; __pyx_L12_exception_handled:; __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); __pyx_L18_try_end:; } } /*finally:*/ { if (__pyx_t_11) { __pyx_t_14 = PyObject_Call(__pyx_t_11, __pyx_k_tuple_79, NULL); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_14); __pyx_t_64 = __Pyx_PyObject_IsTrue(__pyx_t_14); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(__pyx_t_64<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } } goto __pyx_L43; __pyx_L7_error:; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L1_error; __pyx_L43:; } goto __pyx_L6; } __pyx_L6:; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __PYX_XDEC_MEMVIEW(&__pyx_t_15, 1); __Pyx_XDECREF(__pyx_t_16); __PYX_XDEC_MEMVIEW(&__pyx_t_24, 1); { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lut.rcbuffer->pybuffer); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_outMax.rcbuffer->pybuffer); __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} __Pyx_AddTraceback("_distortion.Distortion.calc_LUT", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; goto __pyx_L2; __pyx_L0:; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lut.rcbuffer->pybuffer); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_outMax.rcbuffer->pybuffer); __pyx_L2:; __PYX_XDEC_MEMVIEW(&__pyx_v_pos, 1); __Pyx_XDECREF((PyObject *)__pyx_v_lut); __Pyx_XDECREF((PyObject *)__pyx_v_outMax); __PYX_XDEC_MEMVIEW(&__pyx_v_buffer, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11_distortion_10Distortion_11correct(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_11_distortion_10Distortion_10correct[] = "\n Correct an image based on the look-up table calculated ...\n\n @param image: 2D-array with the image\n @return: corrected 2D image\n "; static PyMethodDef __pyx_mdef_11_distortion_10Distortion_11correct = {__Pyx_NAMESTR("correct"), (PyCFunction)__pyx_pw_11_distortion_10Distortion_11correct, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_11_distortion_10Distortion_10correct)}; static PyObject *__pyx_pw_11_distortion_10Distortion_11correct(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_self = 0; PyObject *__pyx_v_image = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("correct (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__image,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); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__image)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("correct", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "correct")<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __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_self = values[0]; __pyx_v_image = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("correct", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("_distortion.Distortion.correct", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11_distortion_10Distortion_10correct(__pyx_self, __pyx_v_self, __pyx_v_image); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "_distortion.pyx":632 * self.calc_LUT_size() * if self.LUT is None: * with self._sem: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.LUT is None: * pos = self.pos#.reshape(shape0,shape1,4*sizeof(float)) */ __pyx_k_tuple_79 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_79)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_79); __Pyx_INCREF(Py_None); PyTuple_SET_ITEM(__pyx_k_tuple_79, 0, Py_None); __Pyx_GIVEREF(Py_None); __Pyx_INCREF(Py_None); PyTuple_SET_ITEM(__pyx_k_tuple_79, 1, Py_None); __Pyx_GIVEREF(Py_None); __Pyx_INCREF(Py_None); PyTuple_SET_ITEM(__pyx_k_tuple_79, 2, Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_79));
633: if self.LUT is None:
/* "_distortion.pyx":633 * if self.LUT is None: * with self._sem: * if self.LUT is None: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pos = self.pos#.reshape(shape0,shape1,4*sizeof(float)) * lut = numpy.recarray(shape=(self.shape[0] , self.shape[1], self.lut_size), dtype=[("idx", numpy.int32), ("coef", numpy.float32)]) */ __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__LUT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = (__pyx_t_3 == Py_None); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_10) {
634: pos = self.pos#.reshape(shape0,shape1,4*sizeof(float))
/* "_distortion.pyx":634 * with self._sem: * if self.LUT is None: * pos = self.pos#.reshape(shape0,shape1,4*sizeof(float)) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* lut = numpy.recarray(shape=(self.shape[0] , self.shape[1], self.lut_size), dtype=[("idx", numpy.int32), ("coef", numpy.float32)]) * size = self.shape[0]*self.shape[1]*self.lut_size*sizeof(lut_point) */ __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__pos); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 634; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_15 = __Pyx_PyObject_to_MemoryviewSlice_dsdsdsds_float(__pyx_t_3); if (unlikely(!__pyx_t_15.memview)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 634; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_pos = __pyx_t_15; __pyx_t_15.memview = NULL; __pyx_t_15.data = NULL;
635: lut = numpy.recarray(shape=(self.shape[0] , self.shape[1], self.lut_size), dtype=[("idx", numpy.int32), ("coef", numpy.float32)])
/* "_distortion.pyx":635 * if self.LUT is None: * pos = self.pos#.reshape(shape0,shape1,4*sizeof(float)) * lut = numpy.recarray(shape=(self.shape[0] , self.shape[1], self.lut_size), dtype=[("idx", numpy.int32), ("coef", numpy.float32)]) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* size = self.shape[0]*self.shape[1]*self.lut_size*sizeof(lut_point) * memset(&lut[0,0,0], 0, size) */ __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__recarray); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_5, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__lut_size); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_16 = PyTuple_New(3); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_16, 2, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_2 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__shape), ((PyObject *)__pyx_t_16))<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_DECREF(((PyObject *)__pyx_t_16)); __pyx_t_16 = 0; __pyx_t_16 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_16); __pyx_t_5 = PyObject_GetAttr(__pyx_t_16, __pyx_n_s__int32); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = PyTuple_New(2); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_16); __Pyx_INCREF(((PyObject *)__pyx_n_s__idx)); PyTuple_SET_ITEM(__pyx_t_16, 0, ((PyObject *)__pyx_n_s__idx)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__idx)); PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__float32); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(((PyObject *)__pyx_n_s__coef)); PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_n_s__coef)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__coef)); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_16)); __Pyx_GIVEREF(((PyObject *)__pyx_t_16)); PyList_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_t_5)); __Pyx_GIVEREF(((PyObject *)__pyx_t_5)); __pyx_t_16 = 0; __pyx_t_5 = 0; if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__dtype), ((PyObject *)__pyx_t_4))<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __pyx_t_17 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[2]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lut.rcbuffer->pybuffer); __pyx_t_9 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lut.rcbuffer->pybuffer, (PyObject*)__pyx_t_17, &__Pyx_TypeInfo_nn_struct___pyx_t_11_distortion_lut_point, PyBUF_FORMAT| PyBUF_STRIDES, 3, 0, __pyx_stack); if (unlikely(__pyx_t_9<
0)) { PyErr_Fetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lut.rcbuffer->pybuffer, (PyObject*)__pyx_v_lut, &__Pyx_TypeInfo_nn_struct___pyx_t_11_distortion_lut_point, PyBUF_FORMAT| PyBUF_STRIDES, 3, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_18, __pyx_t_19, __pyx_t_20); } } __pyx_pybuffernd_lut.diminfo[0].strides = __pyx_pybuffernd_lut.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lut.diminfo[0].shape = __pyx_pybuffernd_lut.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_lut.diminfo[1].strides = __pyx_pybuffernd_lut.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_lut.diminfo[1].shape = __pyx_pybuffernd_lut.rcbuffer->pybuffer.shape[1]; __pyx_pybuffernd_lut.diminfo[2].strides = __pyx_pybuffernd_lut.rcbuffer->pybuffer.strides[2]; __pyx_pybuffernd_lut.diminfo[2].shape = __pyx_pybuffernd_lut.rcbuffer->pybuffer.shape[2]; if (unlikely(__pyx_t_9<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L11_error;} } __pyx_t_17 = 0; __pyx_v_lut = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0;
636: size = self.shape[0]*self.shape[1]*self.lut_size*sizeof(lut_point)
/* "_distortion.pyx":636 * pos = self.pos#.reshape(shape0,shape1,4*sizeof(float)) * lut = numpy.recarray(shape=(self.shape[0] , self.shape[1], self.lut_size), dtype=[("idx", numpy.int32), ("coef", numpy.float32)]) * size = self.shape[0]*self.shape[1]*self.lut_size*sizeof(lut_point) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* memset(&lut[0,0,0], 0, size) * logger.info("LUT shape: (%i,%i,%i) %.3f MByte"%(lut.shape[0], lut.shape[1],lut.shape[2],size/1.0e6)) */ __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_4, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__lut_size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyNumber_Multiply(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(struct __pyx_t_11_distortion_lut_point))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_9 = __Pyx_PyInt_AsInt(__pyx_t_4); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_size = __pyx_t_9;
637: memset(&lut[0,0,0], 0, size)
/* "_distortion.pyx":637 * lut = numpy.recarray(shape=(self.shape[0] , self.shape[1], self.lut_size), dtype=[("idx", numpy.int32), ("coef", numpy.float32)]) * size = self.shape[0]*self.shape[1]*self.lut_size*sizeof(lut_point) * memset(&lut[0,0,0], 0, size) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* logger.info("LUT shape: (%i,%i,%i) %.3f MByte"%(lut.shape[0], lut.shape[1],lut.shape[2],size/1.0e6)) * buffer = numpy.empty((self.delta0, self.delta1),dtype=numpy.float32) */ __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; memset((&(*__Pyx_BufPtrStrided3d(struct __pyx_t_11_distortion_lut_point *, __pyx_pybuffernd_lut.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_lut.diminfo[0].strides, __pyx_t_22, __pyx_pybuffernd_lut.diminfo[1].strides, __pyx_t_23, __pyx_pybuffernd_lut.diminfo[2].strides))), 0, __pyx_v_size);
638: logger.info("LUT shape: (%i,%i,%i) %.3f MByte"%(lut.shape[0], lut.shape[1],lut.shape[2],size/1.0e6))
/* "_distortion.pyx":638 * size = self.shape[0]*self.shape[1]*self.lut_size*sizeof(lut_point) * memset(&lut[0,0,0], 0, size) * logger.info("LUT shape: (%i,%i,%i) %.3f MByte"%(lut.shape[0], lut.shape[1],lut.shape[2],size/1.0e6)) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* buffer = numpy.empty((self.delta0, self.delta1),dtype=numpy.float32) * buffer_size = self.delta0 * self.delta1 * sizeof(float) */ __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__logger); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 638; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__info); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 638; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_to_py_Py_intptr_t((__pyx_v_lut->dimensions[0])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 638; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyInt_to_py_Py_intptr_t((__pyx_v_lut->dimensions[1])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 638; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyInt_to_py_Py_intptr_t((__pyx_v_lut->dimensions[2])); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 638; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_16 = PyFloat_FromDouble((__pyx_v_size / 1.0e6)); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 638; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_16); __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 638; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_16); __Pyx_GIVEREF(__pyx_t_16); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_5 = 0; __pyx_t_16 = 0; __pyx_t_16 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_77), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 638; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_16)); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 638; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_16)); __Pyx_GIVEREF(((PyObject *)__pyx_t_16)); __pyx_t_16 = 0; __pyx_t_16 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 638; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
639: buffer = numpy.empty((self.delta0, self.delta1),dtype=numpy.float32)
/* "_distortion.pyx":639 * memset(&lut[0,0,0], 0, size) * logger.info("LUT shape: (%i,%i,%i) %.3f MByte"%(lut.shape[0], lut.shape[1],lut.shape[2],size/1.0e6)) * buffer = numpy.empty((self.delta0, self.delta1),dtype=numpy.float32) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* buffer_size = self.delta0 * self.delta1 * sizeof(float) * logger.info("Max pixel size: %ix%i; Max source pixel in target: %i"%(buffer.shape[1],buffer.shape[0], self.lut_size)) */ __pyx_t_16 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_16); __pyx_t_2 = PyObject_GetAttr(__pyx_t_16, __pyx_n_s__empty); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__delta0); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_16); __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__delta1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_16); __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_16 = 0; __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_5)); __Pyx_GIVEREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); __pyx_t_16 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_16); __pyx_t_3 = PyObject_GetAttr(__pyx_t_16, __pyx_n_s__float32); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__dtype), __pyx_t_3)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __pyx_t_24 = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(__pyx_t_3); if (unlikely(!__pyx_t_24.memview)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_buffer = __pyx_t_24; __pyx_t_24.memview = NULL; __pyx_t_24.data = NULL;
640: buffer_size = self.delta0 * self.delta1 * sizeof(float)
/* "_distortion.pyx":640 * logger.info("LUT shape: (%i,%i,%i) %.3f MByte"%(lut.shape[0], lut.shape[1],lut.shape[2],size/1.0e6)) * buffer = numpy.empty((self.delta0, self.delta1),dtype=numpy.float32) * buffer_size = self.delta0 * self.delta1 * sizeof(float) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* logger.info("Max pixel size: %ix%i; Max source pixel in target: %i"%(buffer.shape[1],buffer.shape[0], self.lut_size)) * with nogil: */ __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__delta0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__delta1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyNumber_Multiply(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_FromSize_t((sizeof(float))); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_9 = __Pyx_PyInt_AsInt(__pyx_t_3); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_buffer_size = __pyx_t_9;
641: logger.info("Max pixel size: %ix%i; Max source pixel in target: %i"%(buffer.shape[1],buffer.shape[0], self.lut_size))
/* "_distortion.pyx":641 * buffer = numpy.empty((self.delta0, self.delta1),dtype=numpy.float32) * buffer_size = self.delta0 * self.delta1 * sizeof(float) * logger.info("Max pixel size: %ix%i; Max source pixel in target: %i"%(buffer.shape[1],buffer.shape[0], self.lut_size)) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* with nogil: * # i,j, idx are indexes of the raw image uncorrected */ __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__logger); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__info); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyInt_FromSsize_t((__pyx_v_buffer.shape[1])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyInt_FromSsize_t((__pyx_v_buffer.shape[0])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__lut_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_16 = PyTuple_New(3); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_16, 2, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_78), ((PyObject *)__pyx_t_16)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_DECREF(((PyObject *)__pyx_t_16)); __pyx_t_16 = 0; __pyx_t_16 = PyTuple_New(1); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_16, 0, ((PyObject *)__pyx_t_2)); __Pyx_GIVEREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_t_2 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_16), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_16)); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
642: with nogil:
/* "_distortion.pyx":642 * buffer_size = self.delta0 * self.delta1 * sizeof(float) * logger.info("Max pixel size: %ix%i; Max source pixel in target: %i"%(buffer.shape[1],buffer.shape[0], self.lut_size)) * with nogil: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* # i,j, idx are indexes of the raw image uncorrected * for i in range(shape0): */ { #ifdef WITH_THREAD PyThreadState *_save = NULL; #endif Py_UNBLOCK_THREADS /*try:*/ { /* "_distortion.pyx":642 * buffer_size = self.delta0 * self.delta1 * sizeof(float) * logger.info("Max pixel size: %ix%i; Max source pixel in target: %i"%(buffer.shape[1],buffer.shape[0], self.lut_size)) * with nogil: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* # i,j, idx are indexes of the raw image uncorrected * for i in range(shape0): */ /*finally:*/ { Py_BLOCK_THREADS } }
643: # i,j, idx are indexes of the raw image uncorrected
644: for i in range(shape0):
/* "_distortion.pyx":644 * with nogil: * # i,j, idx are indexes of the raw image uncorrected * for i in range(shape0): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* for j in range(shape1): * #reinit of buffer */ __pyx_t_9 = __pyx_v_shape0; for (__pyx_t_8 = 0; __pyx_t_8<
__pyx_t_9; __pyx_t_8+=1) { __pyx_v_i = __pyx_t_8;
645: for j in range(shape1):
/* "_distortion.pyx":645 * # i,j, idx are indexes of the raw image uncorrected * for i in range(shape0): * for j in range(shape1): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* #reinit of buffer * memset(&buffer[0,0], 0, buffer_size) */ __pyx_t_25 = __pyx_v_shape1; for (__pyx_t_26 = 0; __pyx_t_26<
__pyx_t_25; __pyx_t_26+=1) { __pyx_v_j = __pyx_t_26;
646: #reinit of buffer
647: memset(&buffer[0,0], 0, buffer_size)
/* "_distortion.pyx":647 * for j in range(shape1): * #reinit of buffer * memset(&buffer[0,0], 0, buffer_size) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* A0 = pos[i, j, 0, 0] * A1 = pos[i, j, 0, 1] */ __pyx_t_27 = 0; __pyx_t_28 = 0; memset((&(*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_buffer.data + __pyx_t_27 * __pyx_v_buffer.strides[0]) ) + __pyx_t_28 * __pyx_v_buffer.strides[1]) )))), 0, __pyx_v_buffer_size);
648: A0 = pos[i, j, 0, 0]
/* "_distortion.pyx":648 * #reinit of buffer * memset(&buffer[0,0], 0, buffer_size) * A0 = pos[i, j, 0, 0] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* A1 = pos[i, j, 0, 1] * B0 = pos[i, j, 1, 0] */ __pyx_t_29 = __pyx_v_i; __pyx_t_30 = __pyx_v_j; __pyx_t_31 = 0; __pyx_t_32 = 0; __pyx_v_A0 = (*((float *) ( /* dim=3 */ (( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_pos.data + __pyx_t_29 * __pyx_v_pos.strides[0]) ) + __pyx_t_30 * __pyx_v_pos.strides[1]) ) + __pyx_t_31 * __pyx_v_pos.strides[2]) ) + __pyx_t_32 * __pyx_v_pos.strides[3]) )));
649: A1 = pos[i, j, 0, 1]
/* "_distortion.pyx":649 * memset(&buffer[0,0], 0, buffer_size) * A0 = pos[i, j, 0, 0] * A1 = pos[i, j, 0, 1] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* B0 = pos[i, j, 1, 0] * B1 = pos[i, j, 1, 1] */ __pyx_t_33 = __pyx_v_i; __pyx_t_34 = __pyx_v_j; __pyx_t_35 = 0; __pyx_t_36 = 1; __pyx_v_A1 = (*((float *) ( /* dim=3 */ (( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_pos.data + __pyx_t_33 * __pyx_v_pos.strides[0]) ) + __pyx_t_34 * __pyx_v_pos.strides[1]) ) + __pyx_t_35 * __pyx_v_pos.strides[2]) ) + __pyx_t_36 * __pyx_v_pos.strides[3]) )));
650: B0 = pos[i, j, 1, 0]
/* "_distortion.pyx":650 * A0 = pos[i, j, 0, 0] * A1 = pos[i, j, 0, 1] * B0 = pos[i, j, 1, 0] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* B1 = pos[i, j, 1, 1] * C0 = pos[i, j, 2, 0] */ __pyx_t_37 = __pyx_v_i; __pyx_t_38 = __pyx_v_j; __pyx_t_39 = 1; __pyx_t_40 = 0; __pyx_v_B0 = (*((float *) ( /* dim=3 */ (( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_pos.data + __pyx_t_37 * __pyx_v_pos.strides[0]) ) + __pyx_t_38 * __pyx_v_pos.strides[1]) ) + __pyx_t_39 * __pyx_v_pos.strides[2]) ) + __pyx_t_40 * __pyx_v_pos.strides[3]) )));
651: B1 = pos[i, j, 1, 1]
/* "_distortion.pyx":651 * A1 = pos[i, j, 0, 1] * B0 = pos[i, j, 1, 0] * B1 = pos[i, j, 1, 1] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* C0 = pos[i, j, 2, 0] * C1 = pos[i, j, 2, 1] */ __pyx_t_41 = __pyx_v_i; __pyx_t_42 = __pyx_v_j; __pyx_t_43 = 1; __pyx_t_44 = 1; __pyx_v_B1 = (*((float *) ( /* dim=3 */ (( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_pos.data + __pyx_t_41 * __pyx_v_pos.strides[0]) ) + __pyx_t_42 * __pyx_v_pos.strides[1]) ) + __pyx_t_43 * __pyx_v_pos.strides[2]) ) + __pyx_t_44 * __pyx_v_pos.strides[3]) )));
652: C0 = pos[i, j, 2, 0]
/* "_distortion.pyx":652 * B0 = pos[i, j, 1, 0] * B1 = pos[i, j, 1, 1] * C0 = pos[i, j, 2, 0] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* C1 = pos[i, j, 2, 1] * D0 = pos[i, j, 3, 0] */ __pyx_t_45 = __pyx_v_i; __pyx_t_46 = __pyx_v_j; __pyx_t_47 = 2; __pyx_t_48 = 0; __pyx_v_C0 = (*((float *) ( /* dim=3 */ (( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_pos.data + __pyx_t_45 * __pyx_v_pos.strides[0]) ) + __pyx_t_46 * __pyx_v_pos.strides[1]) ) + __pyx_t_47 * __pyx_v_pos.strides[2]) ) + __pyx_t_48 * __pyx_v_pos.strides[3]) )));
653: C1 = pos[i, j, 2, 1]
/* "_distortion.pyx":653 * B1 = pos[i, j, 1, 1] * C0 = pos[i, j, 2, 0] * C1 = pos[i, j, 2, 1] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* D0 = pos[i, j, 3, 0] * D1 = pos[i, j, 3, 1] */ __pyx_t_49 = __pyx_v_i; __pyx_t_50 = __pyx_v_j; __pyx_t_51 = 2; __pyx_t_52 = 1; __pyx_v_C1 = (*((float *) ( /* dim=3 */ (( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_pos.data + __pyx_t_49 * __pyx_v_pos.strides[0]) ) + __pyx_t_50 * __pyx_v_pos.strides[1]) ) + __pyx_t_51 * __pyx_v_pos.strides[2]) ) + __pyx_t_52 * __pyx_v_pos.strides[3]) )));
654: D0 = pos[i, j, 3, 0]
/* "_distortion.pyx":654 * C0 = pos[i, j, 2, 0] * C1 = pos[i, j, 2, 1] * D0 = pos[i, j, 3, 0] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* D1 = pos[i, j, 3, 1] * offset0 = (<
int> floor(min4f(A0, B0, C0, D0))) */ __pyx_t_53 = __pyx_v_i; __pyx_t_54 = __pyx_v_j; __pyx_t_55 = 3; __pyx_t_56 = 0; __pyx_v_D0 = (*((float *) ( /* dim=3 */ (( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_pos.data + __pyx_t_53 * __pyx_v_pos.strides[0]) ) + __pyx_t_54 * __pyx_v_pos.strides[1]) ) + __pyx_t_55 * __pyx_v_pos.strides[2]) ) + __pyx_t_56 * __pyx_v_pos.strides[3]) )));
655: D1 = pos[i, j, 3, 1]
/* "_distortion.pyx":655 * C1 = pos[i, j, 2, 1] * D0 = pos[i, j, 3, 0] * D1 = pos[i, j, 3, 1] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* offset0 = (<
int> floor(min4f(A0, B0, C0, D0))) * offset1 = (<
int> floor(min4f(A1, B1, C1, D1))) */ __pyx_t_57 = __pyx_v_i; __pyx_t_58 = __pyx_v_j; __pyx_t_59 = 3; __pyx_t_60 = 1; __pyx_v_D1 = (*((float *) ( /* dim=3 */ (( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_pos.data + __pyx_t_57 * __pyx_v_pos.strides[0]) ) + __pyx_t_58 * __pyx_v_pos.strides[1]) ) + __pyx_t_59 * __pyx_v_pos.strides[2]) ) + __pyx_t_60 * __pyx_v_pos.strides[3]) )));
656: offset0 = (<int> floor(min4f(A0, B0, C0, D0)))
/* "_distortion.pyx":656 * D0 = pos[i, j, 3, 0] * D1 = pos[i, j, 3, 1] * offset0 = (<
int> floor(min4f(A0, B0, C0, D0))) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* offset1 = (<
int> floor(min4f(A1, B1, C1, D1))) * box_size0 = (<
int> ceil(max4f(A0, B0, C0, D0))) - offset0 */ __pyx_v_offset0 = ((int)floor(__pyx_f_11_distortion_min4f(__pyx_v_A0, __pyx_v_B0, __pyx_v_C0, __pyx_v_D0)));
657: offset1 = (<int> floor(min4f(A1, B1, C1, D1)))
/* "_distortion.pyx":657 * D1 = pos[i, j, 3, 1] * offset0 = (<
int> floor(min4f(A0, B0, C0, D0))) * offset1 = (<
int> floor(min4f(A1, B1, C1, D1))) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* box_size0 = (<
int> ceil(max4f(A0, B0, C0, D0))) - offset0 * box_size1 = (<
int> ceil(max4f(A1, B1, C1, D1))) - offset1 */ __pyx_v_offset1 = ((int)floor(__pyx_f_11_distortion_min4f(__pyx_v_A1, __pyx_v_B1, __pyx_v_C1, __pyx_v_D1)));
658: box_size0 = (<int> ceil(max4f(A0, B0, C0, D0))) - offset0
/* "_distortion.pyx":658 * offset0 = (<
int> floor(min4f(A0, B0, C0, D0))) * offset1 = (<
int> floor(min4f(A1, B1, C1, D1))) * box_size0 = (<
int> ceil(max4f(A0, B0, C0, D0))) - offset0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* box_size1 = (<
int> ceil(max4f(A1, B1, C1, D1))) - offset1 * A0 -=<
float> offset0 */ __pyx_v_box_size0 = (((int)ceil(__pyx_f_11_distortion_max4f(__pyx_v_A0, __pyx_v_B0, __pyx_v_C0, __pyx_v_D0))) - __pyx_v_offset0);
659: box_size1 = (<int> ceil(max4f(A1, B1, C1, D1))) - offset1
/* "_distortion.pyx":659 * offset1 = (<
int> floor(min4f(A1, B1, C1, D1))) * box_size0 = (<
int> ceil(max4f(A0, B0, C0, D0))) - offset0 * box_size1 = (<
int> ceil(max4f(A1, B1, C1, D1))) - offset1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* A0 -=<
float> offset0 * A1 -=<
float> offset1 */ __pyx_v_box_size1 = (((int)ceil(__pyx_f_11_distortion_max4f(__pyx_v_A1, __pyx_v_B1, __pyx_v_C1, __pyx_v_D1))) - __pyx_v_offset1);
660: A0 -= <float> offset0
/* "_distortion.pyx":660 * box_size0 = (<
int> ceil(max4f(A0, B0, C0, D0))) - offset0 * box_size1 = (<
int> ceil(max4f(A1, B1, C1, D1))) - offset1 * A0 -=<
float> offset0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* A1 -=<
float> offset1 * B0 -=<
float> offset0 */ __pyx_v_A0 = (__pyx_v_A0 - ((float)__pyx_v_offset0));
661: A1 -= <float> offset1
/* "_distortion.pyx":661 * box_size1 = (<
int> ceil(max4f(A1, B1, C1, D1))) - offset1 * A0 -=<
float> offset0 * A1 -=<
float> offset1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* B0 -=<
float> offset0 * B1 -=<
float> offset1 */ __pyx_v_A1 = (__pyx_v_A1 - ((float)__pyx_v_offset1));
662: B0 -= <float> offset0
/* "_distortion.pyx":662 * A0 -=<
float> offset0 * A1 -=<
float> offset1 * B0 -=<
float> offset0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* B1 -=<
float> offset1 * C0 -=<
float> offset0 */ __pyx_v_B0 = (__pyx_v_B0 - ((float)__pyx_v_offset0));
663: B1 -= <float> offset1
/* "_distortion.pyx":663 * A1 -=<
float> offset1 * B0 -=<
float> offset0 * B1 -=<
float> offset1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* C0 -=<
float> offset0 * C1 -=<
float> offset1 */ __pyx_v_B1 = (__pyx_v_B1 - ((float)__pyx_v_offset1));
664: C0 -= <float> offset0
/* "_distortion.pyx":664 * B0 -=<
float> offset0 * B1 -=<
float> offset1 * C0 -=<
float> offset0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* C1 -=<
float> offset1 * D0 -=<
float> offset0 */ __pyx_v_C0 = (__pyx_v_C0 - ((float)__pyx_v_offset0));
665: C1 -= <float> offset1
/* "_distortion.pyx":665 * B1 -=<
float> offset1 * C0 -=<
float> offset0 * C1 -=<
float> offset1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* D0 -=<
float> offset0 * D1 -=<
float> offset1 */ __pyx_v_C1 = (__pyx_v_C1 - ((float)__pyx_v_offset1));
666: D0 -= <float> offset0
/* "_distortion.pyx":666 * C0 -=<
float> offset0 * C1 -=<
float> offset1 * D0 -=<
float> offset0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* D1 -=<
float> offset1 * if B0 != A0: */ __pyx_v_D0 = (__pyx_v_D0 - ((float)__pyx_v_offset0));
667: D1 -= <float> offset1
/* "_distortion.pyx":667 * C1 -=<
float> offset1 * D0 -=<
float> offset0 * D1 -=<
float> offset1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if B0 != A0: * pAB = (B1 - A1) / (B0 - A0) */ __pyx_v_D1 = (__pyx_v_D1 - ((float)__pyx_v_offset1));
668: if B0 != A0:
/* "_distortion.pyx":668 * D0 -=<
float> offset0 * D1 -=<
float> offset1 * if B0 != A0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pAB = (B1 - A1) / (B0 - A0) * cAB = A1 - pAB * A0 */ __pyx_t_10 = (__pyx_v_B0 != __pyx_v_A0); if (__pyx_t_10) {
669: pAB = (B1 - A1) / (B0 - A0)
/* "_distortion.pyx":669 * D1 -=<
float> offset1 * if B0 != A0: * pAB = (B1 - A1) / (B0 - A0) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cAB = A1 - pAB * A0 * else: */ __pyx_v_pAB = ((__pyx_v_B1 - __pyx_v_A1) / (__pyx_v_B0 - __pyx_v_A0));
670: cAB = A1 - pAB * A0
/* "_distortion.pyx":670 * if B0 != A0: * pAB = (B1 - A1) / (B0 - A0) * cAB = A1 - pAB * A0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* else: * pAB = cAB = 0.0 */ __pyx_v_cAB = (__pyx_v_A1 - (__pyx_v_pAB * __pyx_v_A0)); goto __pyx_L29; } /*else*/ {
671: else:
672: pAB = cAB = 0.0
/* "_distortion.pyx":672 * cAB = A1 - pAB * A0 * else: * pAB = cAB = 0.0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if C0 != B0: * pBC = (C1 - B1) / (C0 - B0) */ __pyx_v_pAB = 0.0; __pyx_v_cAB = 0.0; } __pyx_L29:;
673: if C0 != B0:
/* "_distortion.pyx":673 * else: * pAB = cAB = 0.0 * if C0 != B0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pBC = (C1 - B1) / (C0 - B0) * cBC = B1 - pBC * B0 */ __pyx_t_10 = (__pyx_v_C0 != __pyx_v_B0); if (__pyx_t_10) {
674: pBC = (C1 - B1) / (C0 - B0)
/* "_distortion.pyx":674 * pAB = cAB = 0.0 * if C0 != B0: * pBC = (C1 - B1) / (C0 - B0) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cBC = B1 - pBC * B0 * else: */ __pyx_v_pBC = ((__pyx_v_C1 - __pyx_v_B1) / (__pyx_v_C0 - __pyx_v_B0));
675: cBC = B1 - pBC * B0
/* "_distortion.pyx":675 * if C0 != B0: * pBC = (C1 - B1) / (C0 - B0) * cBC = B1 - pBC * B0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* else: * pBC = cBC = 0.0 */ __pyx_v_cBC = (__pyx_v_B1 - (__pyx_v_pBC * __pyx_v_B0)); goto __pyx_L30; } /*else*/ {
676: else:
677: pBC = cBC = 0.0
/* "_distortion.pyx":677 * cBC = B1 - pBC * B0 * else: * pBC = cBC = 0.0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if D0 != C0: * pCD = (D1 - C1) / (D0 - C0) */ __pyx_v_pBC = 0.0; __pyx_v_cBC = 0.0; } __pyx_L30:;
678: if D0 != C0:
/* "_distortion.pyx":678 * else: * pBC = cBC = 0.0 * if D0 != C0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pCD = (D1 - C1) / (D0 - C0) * cCD = C1 - pCD * C0 */ __pyx_t_10 = (__pyx_v_D0 != __pyx_v_C0); if (__pyx_t_10) {
679: pCD = (D1 - C1) / (D0 - C0)
/* "_distortion.pyx":679 * pBC = cBC = 0.0 * if D0 != C0: * pCD = (D1 - C1) / (D0 - C0) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cCD = C1 - pCD * C0 * else: */ __pyx_v_pCD = ((__pyx_v_D1 - __pyx_v_C1) / (__pyx_v_D0 - __pyx_v_C0));
680: cCD = C1 - pCD * C0
/* "_distortion.pyx":680 * if D0 != C0: * pCD = (D1 - C1) / (D0 - C0) * cCD = C1 - pCD * C0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* else: * pCD = cCD = 0.0 */ __pyx_v_cCD = (__pyx_v_C1 - (__pyx_v_pCD * __pyx_v_C0)); goto __pyx_L31; } /*else*/ {
681: else:
682: pCD = cCD = 0.0
/* "_distortion.pyx":682 * cCD = C1 - pCD * C0 * else: * pCD = cCD = 0.0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if A0 != D0: * pDA = (A1 - D1) / (A0 - D0) */ __pyx_v_pCD = 0.0; __pyx_v_cCD = 0.0; } __pyx_L31:;
683: if A0 != D0:
/* "_distortion.pyx":683 * else: * pCD = cCD = 0.0 * if A0 != D0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pDA = (A1 - D1) / (A0 - D0) * cDA = D1 - pDA * D0 */ __pyx_t_10 = (__pyx_v_A0 != __pyx_v_D0); if (__pyx_t_10) {
684: pDA = (A1 - D1) / (A0 - D0)
/* "_distortion.pyx":684 * pCD = cCD = 0.0 * if A0 != D0: * pDA = (A1 - D1) / (A0 - D0) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cDA = D1 - pDA * D0 * else: */ __pyx_v_pDA = ((__pyx_v_A1 - __pyx_v_D1) / (__pyx_v_A0 - __pyx_v_D0));
685: cDA = D1 - pDA * D0
/* "_distortion.pyx":685 * if A0 != D0: * pDA = (A1 - D1) / (A0 - D0) * cDA = D1 - pDA * D0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* else: * pDA = cDA = 0.0 */ __pyx_v_cDA = (__pyx_v_D1 - (__pyx_v_pDA * __pyx_v_D0)); goto __pyx_L32; } /*else*/ {
686: else:
687: pDA = cDA = 0.0
/* "_distortion.pyx":687 * cDA = D1 - pDA * D0 * else: * pDA = cDA = 0.0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* integrate(buffer, B0, A0, pAB, cAB) * integrate(buffer, A0, D0, pDA, cDA) */ __pyx_v_pDA = 0.0; __pyx_v_cDA = 0.0; } __pyx_L32:;
688: integrate(buffer, B0, A0, pAB, cAB)
/* "_distortion.pyx":688 * else: * pDA = cDA = 0.0 * integrate(buffer, B0, A0, pAB, cAB) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* integrate(buffer, A0, D0, pDA, cDA) * integrate(buffer, D0, C0, pCD, cCD) */ __pyx_f_11_distortion_integrate(__pyx_v_buffer, __pyx_v_B0, __pyx_v_A0, __pyx_v_pAB, __pyx_v_cAB);
689: integrate(buffer, A0, D0, pDA, cDA)
/* "_distortion.pyx":689 * pDA = cDA = 0.0 * integrate(buffer, B0, A0, pAB, cAB) * integrate(buffer, A0, D0, pDA, cDA) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* integrate(buffer, D0, C0, pCD, cCD) * integrate(buffer, C0, B0, pBC, cBC) */ __pyx_f_11_distortion_integrate(__pyx_v_buffer, __pyx_v_A0, __pyx_v_D0, __pyx_v_pDA, __pyx_v_cDA);
690: integrate(buffer, D0, C0, pCD, cCD)
/* "_distortion.pyx":690 * integrate(buffer, B0, A0, pAB, cAB) * integrate(buffer, A0, D0, pDA, cDA) * integrate(buffer, D0, C0, pCD, cCD) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* integrate(buffer, C0, B0, pBC, cBC) * area = 0.5*((C0 - A0)*(D1 - B1)-(C1 - A1)*(D0 - B0)) */ __pyx_f_11_distortion_integrate(__pyx_v_buffer, __pyx_v_D0, __pyx_v_C0, __pyx_v_pCD, __pyx_v_cCD);
691: integrate(buffer, C0, B0, pBC, cBC)
/* "_distortion.pyx":691 * integrate(buffer, A0, D0, pDA, cDA) * integrate(buffer, D0, C0, pCD, cCD) * integrate(buffer, C0, B0, pBC, cBC) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* area = 0.5*((C0 - A0)*(D1 - B1)-(C1 - A1)*(D0 - B0)) * for ms in range(box_size0): */ __pyx_f_11_distortion_integrate(__pyx_v_buffer, __pyx_v_C0, __pyx_v_B0, __pyx_v_pBC, __pyx_v_cBC);
692: area = 0.5*((C0 - A0)*(D1 - B1)-(C1 - A1)*(D0 - B0))
/* "_distortion.pyx":692 * integrate(buffer, D0, C0, pCD, cCD) * integrate(buffer, C0, B0, pBC, cBC) * area = 0.5*((C0 - A0)*(D1 - B1)-(C1 - A1)*(D0 - B0)) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* for ms in range(box_size0): * ml = ms + offset0 */ __pyx_v_area = (0.5 * (((__pyx_v_C0 - __pyx_v_A0) * (__pyx_v_D1 - __pyx_v_B1)) - ((__pyx_v_C1 - __pyx_v_A1) * (__pyx_v_D0 - __pyx_v_B0))));
693: for ms in range(box_size0):
/* "_distortion.pyx":693 * integrate(buffer, C0, B0, pBC, cBC) * area = 0.5*((C0 - A0)*(D1 - B1)-(C1 - A1)*(D0 - B0)) * for ms in range(box_size0): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* ml = ms + offset0 * if ml<
0 or ml >= shape0: */ __pyx_t_61 = __pyx_v_box_size0; for (__pyx_t_62 = 0; __pyx_t_62<
__pyx_t_61; __pyx_t_62+=1) { __pyx_v_ms = __pyx_t_62;
694: ml = ms + offset0
/* "_distortion.pyx":694 * area = 0.5*((C0 - A0)*(D1 - B1)-(C1 - A1)*(D0 - B0)) * for ms in range(box_size0): * ml = ms + offset0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if ml<
0 or ml >= shape0: * continue */ __pyx_v_ml = (__pyx_v_ms + __pyx_v_offset0);
695: if ml < 0 or ml >= shape0:
/* "_distortion.pyx":695 * for ms in range(box_size0): * ml = ms + offset0 * if ml<
0 or ml >= shape0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* continue * for ns in range(box_size1): */ __pyx_t_10 = (__pyx_v_ml<
0); if (!__pyx_t_10) { __pyx_t_63 = (__pyx_v_ml >= __pyx_v_shape0); __pyx_t_64 = __pyx_t_63; } else { __pyx_t_64 = __pyx_t_10; } if (__pyx_t_64) {
696: continue
/* "_distortion.pyx":696 * ml = ms + offset0 * if ml<
0 or ml >= shape0: * continue #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* for ns in range(box_size1): * # ms,ns are indexes of the corrected image in short form, ml & nl are the same */ goto __pyx_L33_continue; goto __pyx_L35; } __pyx_L35:;
697: for ns in range(box_size1):
/* "_distortion.pyx":697 * if ml<
0 or ml >= shape0: * continue * for ns in range(box_size1): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* # ms,ns are indexes of the corrected image in short form, ml & nl are the same * nl = ns + offset1 */ __pyx_t_65 = __pyx_v_box_size1; for (__pyx_t_66 = 0; __pyx_t_66<
__pyx_t_65; __pyx_t_66+=1) { __pyx_v_ns = __pyx_t_66;
698: # ms,ns are indexes of the corrected image in short form, ml & nl are the same
699: nl = ns + offset1
/* "_distortion.pyx":699 * for ns in range(box_size1): * # ms,ns are indexes of the corrected image in short form, ml & nl are the same * nl = ns + offset1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if nl<
0 or nl >= shape1: * continue */ __pyx_v_nl = (__pyx_v_ns + __pyx_v_offset1);
700: if nl < 0 or nl >= shape1:
/* "_distortion.pyx":700 * # ms,ns are indexes of the corrected image in short form, ml & nl are the same * nl = ns + offset1 * if nl<
0 or nl >= shape1: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* continue * value = buffer[ms, ns] / area */ __pyx_t_64 = (__pyx_v_nl<
0); if (!__pyx_t_64) { __pyx_t_10 = (__pyx_v_nl >= __pyx_v_shape1); __pyx_t_63 = __pyx_t_10; } else { __pyx_t_63 = __pyx_t_64; } if (__pyx_t_63) {
701: continue
/* "_distortion.pyx":701 * nl = ns + offset1 * if nl<
0 or nl >= shape1: * continue #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* value = buffer[ms, ns] / area * if value<
= 0: */ goto __pyx_L36_continue; goto __pyx_L38; } __pyx_L38:;
702: value = buffer[ms, ns] / area
/* "_distortion.pyx":702 * if nl<
0 or nl >= shape1: * continue * value = buffer[ms, ns] / area #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if value<
= 0: * continue */ __pyx_t_67 = __pyx_v_ms; __pyx_t_68 = __pyx_v_ns; __pyx_v_value = ((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_buffer.data + __pyx_t_67 * __pyx_v_buffer.strides[0]) ) + __pyx_t_68 * __pyx_v_buffer.strides[1]) ))) / __pyx_v_area);
703: if value <= 0:
/* "_distortion.pyx":703 * continue * value = buffer[ms, ns] / area * if value<
= 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* continue * k = outMax[ml, nl] */ __pyx_t_63 = (__pyx_v_value<
= 0.0); if (__pyx_t_63) {
704: continue
/* "_distortion.pyx":704 * value = buffer[ms, ns] / area * if value<
= 0: * continue #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* k = outMax[ml, nl] * lut[ml, nl, k].idx = idx */ goto __pyx_L36_continue; goto __pyx_L39; } __pyx_L39:;
705: k = outMax[ml, nl]
/* "_distortion.pyx":705 * if value<
= 0: * continue * k = outMax[ml, nl] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* lut[ml, nl, k].idx = idx * lut[ml, nl, k].coef = value */ __pyx_t_69 = __pyx_v_ml; __pyx_t_70 = __pyx_v_nl; __pyx_v_k = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_outMax.rcbuffer->pybuffer.buf, __pyx_t_69, __pyx_pybuffernd_outMax.diminfo[0].strides, __pyx_t_70, __pyx_pybuffernd_outMax.diminfo[1].strides));
706: lut[ml, nl, k].idx = idx
/* "_distortion.pyx":706 * continue * k = outMax[ml, nl] * lut[ml, nl, k].idx = idx #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* lut[ml, nl, k].coef = value * outMax[ml, nl] = k + 1 */ __pyx_t_71 = __pyx_v_ml; __pyx_t_72 = __pyx_v_nl; __pyx_t_73 = __pyx_v_k; (*__Pyx_BufPtrStrided3d(struct __pyx_t_11_distortion_lut_point *, __pyx_pybuffernd_lut.rcbuffer->pybuffer.buf, __pyx_t_71, __pyx_pybuffernd_lut.diminfo[0].strides, __pyx_t_72, __pyx_pybuffernd_lut.diminfo[1].strides, __pyx_t_73, __pyx_pybuffernd_lut.diminfo[2].strides)).idx = __pyx_v_idx;
707: lut[ml, nl, k].coef = value
/* "_distortion.pyx":707 * k = outMax[ml, nl] * lut[ml, nl, k].idx = idx * lut[ml, nl, k].coef = value #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* outMax[ml, nl] = k + 1 * idx += 1 */ __pyx_t_74 = __pyx_v_ml; __pyx_t_75 = __pyx_v_nl; __pyx_t_76 = __pyx_v_k; (*__Pyx_BufPtrStrided3d(struct __pyx_t_11_distortion_lut_point *, __pyx_pybuffernd_lut.rcbuffer->pybuffer.buf, __pyx_t_74, __pyx_pybuffernd_lut.diminfo[0].strides, __pyx_t_75, __pyx_pybuffernd_lut.diminfo[1].strides, __pyx_t_76, __pyx_pybuffernd_lut.diminfo[2].strides)).coef = __pyx_v_value;
708: outMax[ml, nl] = k + 1
/* "_distortion.pyx":708 * lut[ml, nl, k].idx = idx * lut[ml, nl, k].coef = value * outMax[ml, nl] = k + 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* idx += 1 * self.LUT = lut.reshape(self.shape[0] * self.shape[1], self.lut_size) */ __pyx_t_77 = __pyx_v_ml; __pyx_t_78 = __pyx_v_nl; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_outMax.rcbuffer->pybuffer.buf, __pyx_t_77, __pyx_pybuffernd_outMax.diminfo[0].strides, __pyx_t_78, __pyx_pybuffernd_outMax.diminfo[1].strides) = (__pyx_v_k + 1); __pyx_L36_continue:; } __pyx_L33_continue:; }
709: idx += 1
/* "_distortion.pyx":709 * lut[ml, nl, k].coef = value * outMax[ml, nl] = k + 1 * idx += 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.LUT = lut.reshape(self.shape[0] * self.shape[1], self.lut_size) * */ __pyx_v_idx = (__pyx_v_idx + 1); } } }
710: self.LUT = lut.reshape(self.shape[0] * self.shape[1], self.lut_size)
/* "_distortion.pyx":710 * outMax[ml, nl] = k + 1 * idx += 1 * self.LUT = lut.reshape(self.shape[0] * self.shape[1], self.lut_size) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * @cython.wraparound(False) */ __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_lut), __pyx_n_s__reshape); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_16 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_16); __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_16, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_16); __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_16, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = PyNumber_Multiply(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__lut_size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_16); __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_16 = 0; __pyx_t_1 = 0; __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__LUT, __pyx_t_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L11_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L19; } __pyx_L19:; } __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; goto __pyx_L18_try_end; __pyx_L11_error:; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_XDEC_MEMVIEW(&__pyx_t_24, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_15, 1);
711:
712: @cython.wraparound(False)
713: @cython.boundscheck(False)
714: def correct(self, image):
/* "_distortion.pyx":714 * @cython.wraparound(False) * @cython.boundscheck(False) * def correct(self, image): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* """ * Correct an image based on the look-up table calculated ... */ static PyObject *__pyx_pf_11_distortion_10Distortion_10correct(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_image) { int __pyx_v_i; int __pyx_v_j; CYTHON_UNUSED int __pyx_v_lshape0; int __pyx_v_lshape1; int __pyx_v_idx; int __pyx_v_size; float __pyx_v_coef; __Pyx_memviewslice __pyx_v_LUT = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_lout = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_lin = { 0, 0, { 0 }, { 0 }, { 0 } }; PyObject *__pyx_v_img_shape = NULL; PyObject *__pyx_v_new_image = NULL; PyObject *__pyx_v_out = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("correct", 0); __Pyx_INCREF(__pyx_v_image); /* "_distortion.pyx":714 * @cython.wraparound(False) * @cython.boundscheck(False) * def correct(self, image): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* """ * Correct an image based on the look-up table calculated ... */ __pyx_k_tuple_142 = PyTuple_New(15); if (unlikely(!__pyx_k_tuple_142)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_142); __Pyx_INCREF(((PyObject *)__pyx_n_s__self)); PyTuple_SET_ITEM(__pyx_k_tuple_142, 0, ((PyObject *)__pyx_n_s__self)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__self)); __Pyx_INCREF(((PyObject *)__pyx_n_s__image)); PyTuple_SET_ITEM(__pyx_k_tuple_142, 1, ((PyObject *)__pyx_n_s__image)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__image)); __Pyx_INCREF(((PyObject *)__pyx_n_s__i)); PyTuple_SET_ITEM(__pyx_k_tuple_142, 2, ((PyObject *)__pyx_n_s__i)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__i)); __Pyx_INCREF(((PyObject *)__pyx_n_s__j)); PyTuple_SET_ITEM(__pyx_k_tuple_142, 3, ((PyObject *)__pyx_n_s__j)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__j)); __Pyx_INCREF(((PyObject *)__pyx_n_s__lshape0)); PyTuple_SET_ITEM(__pyx_k_tuple_142, 4, ((PyObject *)__pyx_n_s__lshape0)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__lshape0)); __Pyx_INCREF(((PyObject *)__pyx_n_s__lshape1)); PyTuple_SET_ITEM(__pyx_k_tuple_142, 5, ((PyObject *)__pyx_n_s__lshape1)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__lshape1)); __Pyx_INCREF(((PyObject *)__pyx_n_s__idx)); PyTuple_SET_ITEM(__pyx_k_tuple_142, 6, ((PyObject *)__pyx_n_s__idx)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__idx)); __Pyx_INCREF(((PyObject *)__pyx_n_s__size)); PyTuple_SET_ITEM(__pyx_k_tuple_142, 7, ((PyObject *)__pyx_n_s__size)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__size)); __Pyx_INCREF(((PyObject *)__pyx_n_s__coef)); PyTuple_SET_ITEM(__pyx_k_tuple_142, 8, ((PyObject *)__pyx_n_s__coef)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__coef)); __Pyx_INCREF(((PyObject *)__pyx_n_s__LUT)); PyTuple_SET_ITEM(__pyx_k_tuple_142, 9, ((PyObject *)__pyx_n_s__LUT)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__LUT)); __Pyx_INCREF(((PyObject *)__pyx_n_s__lout)); PyTuple_SET_ITEM(__pyx_k_tuple_142, 10, ((PyObject *)__pyx_n_s__lout)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__lout)); __Pyx_INCREF(((PyObject *)__pyx_n_s__lin)); PyTuple_SET_ITEM(__pyx_k_tuple_142, 11, ((PyObject *)__pyx_n_s__lin)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__lin)); __Pyx_INCREF(((PyObject *)__pyx_n_s__img_shape)); PyTuple_SET_ITEM(__pyx_k_tuple_142, 12, ((PyObject *)__pyx_n_s__img_shape)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__img_shape)); __Pyx_INCREF(((PyObject *)__pyx_n_s__new_image)); PyTuple_SET_ITEM(__pyx_k_tuple_142, 13, ((PyObject *)__pyx_n_s__new_image)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__new_image)); __Pyx_INCREF(((PyObject *)__pyx_n_s__out)); PyTuple_SET_ITEM(__pyx_k_tuple_142, 14, ((PyObject *)__pyx_n_s__out)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__out)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_142)); /* "_distortion.pyx":714 * @cython.wraparound(False) * @cython.boundscheck(False) * def correct(self, image): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* """ * Correct an image based on the look-up table calculated ... */ __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_11_distortion_10Distortion_11correct, 0, NULL, __pyx_n_s___distortion, ((PyObject *)__pyx_k_codeobj_143)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s__correct, __pyx_t_2)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_k_codeobj_143 = (PyObject*)__Pyx_PyCode_New(2, 0, 15, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_142, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_132, __pyx_n_s__correct, 714, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_143)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
715: """
716: Correct an image based on the look-up table calculated ...
717:
718: @param image: 2D-array with the image
719: @return: corrected 2D image
720: """
721: cdef int i,j, lshape0, lshape1, idx, size
722: cdef float coef
723: cdef lut_point[:,:] LUT
724: cdef float[:] lout, lin
725: if self.LUT is None:
/* "_distortion.pyx":725 * cdef lut_point[:,:] LUT * cdef float[:] lout, lin * if self.LUT is None: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.calc_LUT() * LUT = self.LUT */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__LUT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 725; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__pyx_t_1 == Py_None); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) {
726: self.calc_LUT()
/* "_distortion.pyx":726 * cdef float[:] lout, lin * if self.LUT is None: * self.calc_LUT() #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* LUT = self.LUT * lshape0 = LUT.shape[0] */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__calc_LUT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 726; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 726; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L3; } __pyx_L3:;
727: LUT = self.LUT
/* "_distortion.pyx":727 * if self.LUT is None: * self.calc_LUT() * LUT = self.LUT #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* lshape0 = LUT.shape[0] * lshape1 = LUT.shape[1] */ __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__LUT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_struct___pyx_t_11_distortion_lut_point(__pyx_t_3); if (unlikely(!__pyx_t_4.memview)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_LUT = __pyx_t_4; __pyx_t_4.memview = NULL; __pyx_t_4.data = NULL;
728: lshape0 = LUT.shape[0]
/* "_distortion.pyx":728 * self.calc_LUT() * LUT = self.LUT * lshape0 = LUT.shape[0] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* lshape1 = LUT.shape[1] * img_shape = image.shape */ __pyx_v_lshape0 = (__pyx_v_LUT.shape[0]);
729: lshape1 = LUT.shape[1]
/* "_distortion.pyx":729 * LUT = self.LUT * lshape0 = LUT.shape[0] * lshape1 = LUT.shape[1] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* img_shape = image.shape * if (img_shape[0]<
self.shape[0]) or (img_shape[1]<
self.shape[1]): */ __pyx_v_lshape1 = (__pyx_v_LUT.shape[1]);
730: img_shape = image.shape
/* "_distortion.pyx":730 * lshape0 = LUT.shape[0] * lshape1 = LUT.shape[1] * img_shape = image.shape #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if (img_shape[0]<
self.shape[0]) or (img_shape[1]<
self.shape[1]): * new_image = numpy.zeros(self.shape, dtype=numpy.float32) */ __pyx_t_3 = PyObject_GetAttr(__pyx_v_image, __pyx_n_s__shape); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 730; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_v_img_shape = __pyx_t_3; __pyx_t_3 = 0;
731: if (img_shape[0]<self.shape[0]) or (img_shape[1]<self.shape[1]):
/* "_distortion.pyx":731 * lshape1 = LUT.shape[1] * img_shape = image.shape * if (img_shape[0]<
self.shape[0]) or (img_shape[1]<
self.shape[1]): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* new_image = numpy.zeros(self.shape, dtype=numpy.float32) * new_image[:img_shape[0],:img_shape[1]] = image */ __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_img_shape, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_1, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_RichCompare(__pyx_t_3, __pyx_t_5, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!__pyx_t_2) { __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_img_shape, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_5, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7 = __pyx_t_6; } else { __pyx_t_7 = __pyx_t_2; } if (__pyx_t_7) {
732: new_image = numpy.zeros(self.shape, dtype=numpy.float32)
/* "_distortion.pyx":732 * img_shape = image.shape * if (img_shape[0]<
self.shape[0]) or (img_shape[1]<
self.shape[1]): * new_image = numpy.zeros(self.shape, dtype=numpy.float32) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* new_image[:img_shape[0],:img_shape[1]] = image * image = new_image */ __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__zeros); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__float32); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__dtype), __pyx_t_9)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __pyx_v_new_image = __pyx_t_9; __pyx_t_9 = 0;
733: new_image[:img_shape[0],:img_shape[1]] = image
/* "_distortion.pyx":733 * if (img_shape[0]<
self.shape[0]) or (img_shape[1]<
self.shape[1]): * new_image = numpy.zeros(self.shape, dtype=numpy.float32) * new_image[:img_shape[0],:img_shape[1]] = image #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* image = new_image * logger.warning("Patching image as image is %ix%i and spline is %ix%i"%(img_shape[1],img_shape[0],self.shape[1],self.shape[0])) */ __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_img_shape, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 733; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_5 = PySlice_New(Py_None, __pyx_t_9, Py_None); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 733; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_img_shape, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 733; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = PySlice_New(Py_None, __pyx_t_9, Py_None); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 733; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 733; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_5 = 0; __pyx_t_1 = 0; if (PyObject_SetItem(__pyx_v_new_image, ((PyObject *)__pyx_t_9), __pyx_v_image)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 733; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
734: image = new_image
/* "_distortion.pyx":734 * new_image = numpy.zeros(self.shape, dtype=numpy.float32) * new_image[:img_shape[0],:img_shape[1]] = image * image = new_image #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* logger.warning("Patching image as image is %ix%i and spline is %ix%i"%(img_shape[1],img_shape[0],self.shape[1],self.shape[0])) * */ __Pyx_INCREF(__pyx_v_new_image); __Pyx_DECREF(__pyx_v_image); __pyx_v_image = __pyx_v_new_image;
735: logger.warning("Patching image as image is %ix%i and spline is %ix%i"%(img_shape[1],img_shape[0],self.shape[1],self.shape[0]))
/* "_distortion.pyx":735 * new_image[:img_shape[0],:img_shape[1]] = image * image = new_image * logger.warning("Patching image as image is %ix%i and spline is %ix%i"%(img_shape[1],img_shape[0],self.shape[1],self.shape[0])) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * out = numpy.zeros(self.shape, dtype=numpy.float32) */ __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__logger); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__warning); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_img_shape, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_img_shape, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_3, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_3, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); __pyx_t_9 = 0; __pyx_t_5 = 0; __pyx_t_8 = 0; __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_80), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_10)); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_10)); __Pyx_GIVEREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0; __pyx_t_10 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; goto __pyx_L4; } __pyx_L4:;
736:
737: out = numpy.zeros(self.shape, dtype=numpy.float32)
/* "_distortion.pyx":737 * logger.warning("Patching image as image is %ix%i and spline is %ix%i"%(img_shape[1],img_shape[0],self.shape[1],self.shape[0])) * * out = numpy.zeros(self.shape, dtype=numpy.float32) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* lout = out.ravel() * lin = numpy.ascontiguousarray(image.ravel(),dtype=numpy.float32) */ __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_3 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__zeros); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_10)); __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__float32); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (PyDict_SetItem(__pyx_t_10, ((PyObject *)__pyx_n_s__dtype), __pyx_t_5)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_10)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0; __pyx_v_out = __pyx_t_5; __pyx_t_5 = 0;
738: lout = out.ravel()
/* "_distortion.pyx":738 * * out = numpy.zeros(self.shape, dtype=numpy.float32) * lout = out.ravel() #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* lin = numpy.ascontiguousarray(image.ravel(),dtype=numpy.float32) * size = lin.size */ __pyx_t_5 = PyObject_GetAttr(__pyx_v_out, __pyx_n_s__ravel); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 738; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_10 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 738; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_ds_float(__pyx_t_10); if (unlikely(!__pyx_t_11.memview)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 738; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_v_lout = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL;
739: lin = numpy.ascontiguousarray(image.ravel(),dtype=numpy.float32)
/* "_distortion.pyx":739 * out = numpy.zeros(self.shape, dtype=numpy.float32) * lout = out.ravel() * lin = numpy.ascontiguousarray(image.ravel(),dtype=numpy.float32) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* size = lin.size * for i in prange(lshape0, nogil=True, schedule="static"): */ __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 739; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_5 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__ascontiguousarray); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 739; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyObject_GetAttr(__pyx_v_image, __pyx_n_s__ravel); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 739; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_1 = PyObject_Call(__pyx_t_10, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 739; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 739; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 739; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 739; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__float32); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 739; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__dtype), __pyx_t_8)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 739; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_10), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 739; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_ds_float(__pyx_t_8); if (unlikely(!__pyx_t_11.memview)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 739; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_lin = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL;
740: size = lin.size
/* "_distortion.pyx":740 * lout = out.ravel() * lin = numpy.ascontiguousarray(image.ravel(),dtype=numpy.float32) * size = lin.size #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* for i in prange(lshape0, nogil=True, schedule="static"): * for j in range(lshape1): */ __pyx_t_8 = __pyx_memoryview_fromslice(__pyx_v_lin, 1, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_12 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_size = __pyx_t_12;
741: for i in prange(lshape0, nogil=True, schedule="static"):
/* "_distortion.pyx":741 * lin = numpy.ascontiguousarray(image.ravel(),dtype=numpy.float32) * size = lin.size * for i in prange(lshape0, nogil=True, schedule="static"): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* for j in range(lshape1): * idx = LUT[i,j].idx */ { #ifdef WITH_THREAD PyThreadState *_save = NULL; #endif Py_UNBLOCK_THREADS /*try:*/ { __pyx_t_12 = __pyx_v_lshape0; 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; if (__pyx_t_14 > 0) { #ifdef _OPENMP #pragma omp parallel #endif /* _OPENMP */ { #ifdef _OPENMP #pragma omp for lastprivate(__pyx_v_coef) lastprivate(__pyx_v_idx) lastprivate(__pyx_v_j) firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) schedule(static) #endif /* _OPENMP */ for (__pyx_t_13 = 0; __pyx_t_13<
__pyx_t_14; __pyx_t_13++){ { __pyx_v_i = 0 + 1 * __pyx_t_13; /* Initialize private variables to invalid values */ __pyx_v_coef = ((float)__PYX_NAN); __pyx_v_idx = ((int)0xbad0bad0); __pyx_v_j = ((int)0xbad0bad0); /* "_distortion.pyx":741 * lin = numpy.ascontiguousarray(image.ravel(),dtype=numpy.float32) * size = lin.size * for i in prange(lshape0, nogil=True, schedule="static"): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* for j in range(lshape1): * idx = LUT[i,j].idx */ /*finally:*/ { int __pyx_why; __pyx_why = 0; goto __pyx_L7; __pyx_L5: __pyx_why = 3; goto __pyx_L7; __pyx_L6: __pyx_why = 4; goto __pyx_L7; __pyx_L7:; Py_BLOCK_THREADS switch (__pyx_why) { case 3: goto __pyx_L0; case 4: goto __pyx_L1_error; } } }
742: for j in range(lshape1):
/* "_distortion.pyx":742 * size = lin.size * for i in prange(lshape0, nogil=True, schedule="static"): * for j in range(lshape1): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* idx = LUT[i,j].idx * coef = LUT[i,j].coef */ __pyx_t_15 = __pyx_v_lshape1; for (__pyx_t_16 = 0; __pyx_t_16<
__pyx_t_15; __pyx_t_16+=1) { __pyx_v_j = __pyx_t_16;
743: idx = LUT[i,j].idx
/* "_distortion.pyx":743 * for i in prange(lshape0, nogil=True, schedule="static"): * for j in range(lshape1): * idx = LUT[i,j].idx #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* coef = LUT[i,j].coef * if coef<
=0: */ __pyx_t_17 = __pyx_v_i; __pyx_t_18 = __pyx_v_j; __pyx_v_idx = (*((struct __pyx_t_11_distortion_lut_point *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_LUT.data + __pyx_t_17 * __pyx_v_LUT.strides[0]) ) + __pyx_t_18 * __pyx_v_LUT.strides[1]) ))).idx;
744: coef = LUT[i,j].coef
/* "_distortion.pyx":744 * for j in range(lshape1): * idx = LUT[i,j].idx * coef = LUT[i,j].coef #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if coef<
=0: * continue */ __pyx_t_19 = __pyx_v_i; __pyx_t_20 = __pyx_v_j; __pyx_v_coef = (*((struct __pyx_t_11_distortion_lut_point *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_LUT.data + __pyx_t_19 * __pyx_v_LUT.strides[0]) ) + __pyx_t_20 * __pyx_v_LUT.strides[1]) ))).coef;
745: if coef<=0:
/* "_distortion.pyx":745 * idx = LUT[i,j].idx * coef = LUT[i,j].coef * if coef<
=0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* continue * if idx>=size: */ __pyx_t_7 = (__pyx_v_coef<
= 0.0); if (__pyx_t_7) {
746: continue
/* "_distortion.pyx":746 * coef = LUT[i,j].coef * if coef<
=0: * continue #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if idx>=size: * with gil: */ goto __pyx_L12_continue; goto __pyx_L14; } __pyx_L14:;
747: if idx>=size:
/* "_distortion.pyx":747 * if coef<
=0: * continue * if idx>=size: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* with gil: * logger.warning("Accessing %i >= %i !!!"%(idx,size)) */ __pyx_t_7 = (__pyx_v_idx >= __pyx_v_size); if (__pyx_t_7) {
748: with gil:
/* "_distortion.pyx":748 * continue * if idx>=size: * with gil: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* logger.warning("Accessing %i >= %i !!!"%(idx,size)) * continue */ { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif /*try:*/ { /* "_distortion.pyx":748 * continue * if idx>=size: * with gil: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* logger.warning("Accessing %i >= %i !!!"%(idx,size)) * continue */ /*finally:*/ { int __pyx_why; __pyx_why = 0; goto __pyx_L20; __pyx_L16: __pyx_why = 1; goto __pyx_L20; __pyx_L19: __pyx_why = 4; goto __pyx_L20; __pyx_L20:; #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif switch (__pyx_why) { case 1: goto __pyx_L12_continue; case 4: goto __pyx_L10_error; } } } goto __pyx_L15; } __pyx_L15:;
749: logger.warning("Accessing %i >= %i !!!"%(idx,size))
/* "_distortion.pyx":749 * if idx>=size: * with gil: * logger.warning("Accessing %i >= %i !!!"%(idx,size)) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* continue * lout[i] += lin[idx] * coef */ __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__logger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L19;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__warning); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L19;} __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyInt_FromLong(__pyx_v_idx); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L19;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = PyInt_FromLong(__pyx_v_size); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L19;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L19;} __Pyx_GOTREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); __pyx_t_1 = 0; __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_81), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L19;} __Pyx_GOTREF(((PyObject *)__pyx_t_10)); __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L19;} __Pyx_GOTREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_10)); __Pyx_GIVEREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0; __pyx_t_10 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L19;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
750: continue
/* "_distortion.pyx":750 * with gil: * logger.warning("Accessing %i >= %i !!!"%(idx,size)) * continue #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* lout[i] += lin[idx] * coef * return out[:img_shape[0],:img_shape[1]] */ goto __pyx_L16; }
751: lout[i] += lin[idx] * coef
/* "_distortion.pyx":751 * logger.warning("Accessing %i >= %i !!!"%(idx,size)) * continue * lout[i] += lin[idx] * coef #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return out[:img_shape[0],:img_shape[1]] * */ __pyx_t_21 = __pyx_v_idx; __pyx_t_22 = __pyx_v_i; *((float *) ( /* dim=0 */ (__pyx_v_lout.data + __pyx_t_22 * __pyx_v_lout.strides[0]) )) += ((*((float *) ( /* dim=0 */ (__pyx_v_lin.data + __pyx_t_21 * __pyx_v_lin.strides[0]) ))) * __pyx_v_coef); __pyx_L12_continue:; } goto __pyx_L23; __pyx_L10_error:; { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif #ifdef _OPENMP #pragma omp flush(__pyx_parallel_exc_type) #endif /* _OPENMP */ if (!__pyx_parallel_exc_type) { __Pyx_ErrFetch(&__pyx_parallel_exc_type, &__pyx_parallel_exc_value, &__pyx_parallel_exc_tb); __pyx_parallel_filename = __pyx_filename; __pyx_parallel_lineno = __pyx_lineno; __pyx_parallel_clineno = __pyx_clineno; __Pyx_GOTREF(__pyx_parallel_exc_type); } #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif } __pyx_parallel_why = 4; goto __pyx_L22; __pyx_L22:; #ifdef _OPENMP #pragma omp critical(__pyx_parallel_lastprivates0) #endif /* _OPENMP */ { __pyx_parallel_temp0 = __pyx_v_coef; __pyx_parallel_temp1 = __pyx_v_idx; __pyx_parallel_temp2 = __pyx_v_j; __pyx_parallel_temp3 = __pyx_v_i; } __pyx_L23:; #ifdef _OPENMP #pragma omp flush(__pyx_parallel_why) #endif /* _OPENMP */ } } #ifdef _OPENMP Py_END_ALLOW_THREADS #else { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif #endif /* _OPENMP */ /* Clean up any temporaries */ __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = NULL; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = NULL; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = NULL; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = NULL; #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif #ifndef _OPENMP } #endif /* _OPENMP */ } } if (__pyx_parallel_exc_type) { /* This may have been overridden by a continue, break or return in another thread. Prefer the error. */ __pyx_parallel_why = 4; } if (__pyx_parallel_why) { __pyx_v_coef = __pyx_parallel_temp0; __pyx_v_idx = __pyx_parallel_temp1; __pyx_v_j = __pyx_parallel_temp2; __pyx_v_i = __pyx_parallel_temp3; switch (__pyx_parallel_why) { case 3: goto __pyx_L5; case 4: { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif __Pyx_ErrRestore(__pyx_parallel_exc_type, __pyx_parallel_exc_value, __pyx_parallel_exc_tb); __pyx_filename = __pyx_parallel_filename; __pyx_lineno = __pyx_parallel_lineno; __pyx_clineno = __pyx_parallel_clineno; __Pyx_GIVEREF(__pyx_parallel_exc_type); #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif } goto __pyx_L6; } } } #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 }
752: return out[:img_shape[0],:img_shape[1]]
/* "_distortion.pyx":752 * continue * lout[i] += lin[idx] * coef * return out[:img_shape[0],:img_shape[1]] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * @timeit */ __Pyx_XDECREF(__pyx_r); __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_img_shape, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_5 = PySlice_New(Py_None, __pyx_t_10, Py_None); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_img_shape, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_8 = PySlice_New(Py_None, __pyx_t_10, Py_None); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_5 = 0; __pyx_t_8 = 0; __pyx_t_8 = PyObject_GetItem(__pyx_v_out, ((PyObject *)__pyx_t_10)); if (!__pyx_t_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0; __pyx_r = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __PYX_XDEC_MEMVIEW(&__pyx_t_4, 1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __PYX_XDEC_MEMVIEW(&__pyx_t_11, 1); __Pyx_AddTraceback("_distortion.Distortion.correct", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_LUT, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_lout, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_lin, 1); __Pyx_XDECREF(__pyx_v_img_shape); __Pyx_XDECREF(__pyx_v_new_image); __Pyx_XDECREF(__pyx_v_out); __Pyx_XDECREF(__pyx_v_image); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11_distortion_10Distortion_13uncorrect(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_11_distortion_10Distortion_12uncorrect[] = "\n Take an image which has been corrected and transform it into it's raw (with loose of information)\n\n @param image: 2D-array with the image\n @return: uncorrected 2D image and a mask (pixels in raw image\n "; static PyMethodDef __pyx_mdef_11_distortion_10Distortion_13uncorrect = {__Pyx_NAMESTR("uncorrect"), (PyCFunction)__pyx_pw_11_distortion_10Distortion_13uncorrect, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_11_distortion_10Distortion_12uncorrect)}; static PyObject *__pyx_pw_11_distortion_10Distortion_13uncorrect(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_self = 0; PyObject *__pyx_v_image = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("uncorrect (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__image,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); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__image)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("uncorrect", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 755; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "uncorrect")<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 755; __pyx_clineno = __LINE__; goto __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_self = values[0]; __pyx_v_image = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("uncorrect", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 755; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("_distortion.Distortion.uncorrect", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11_distortion_10Distortion_12uncorrect(__pyx_self, __pyx_v_self, __pyx_v_image); __Pyx_RefNannyFinishContext(); return __pyx_r; }
753:
754: @timeit
/* "_distortion.pyx":754 * return out[:img_shape[0],:img_shape[1]] * * @timeit #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* def uncorrect(self, image): * """ */ __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__timeit); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2);
755: def uncorrect(self, image):
/* "_distortion.pyx":755 * * @timeit * def uncorrect(self, image): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* """ * Take an image which has been corrected and transform it into it's raw (with loose of information) */ static PyObject *__pyx_pf_11_distortion_10Distortion_12uncorrect(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_image) { PyObject *__pyx_v_out = NULL; PyObject *__pyx_v_mask = NULL; PyObject *__pyx_v_lmask = NULL; PyObject *__pyx_v_lout = NULL; PyObject *__pyx_v_lin = NULL; PyObject *__pyx_v_tot = NULL; PyObject *__pyx_v_idx = NULL; PyObject *__pyx_v_t = NULL; PyObject *__pyx_v_val = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("uncorrect", 0); /* "_distortion.pyx":755 * * @timeit * def uncorrect(self, image): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* """ * Take an image which has been corrected and transform it into it's raw (with loose of information) */ __pyx_k_tuple_144 = PyTuple_New(11); if (unlikely(!__pyx_k_tuple_144)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 755; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_144); __Pyx_INCREF(((PyObject *)__pyx_n_s__self)); PyTuple_SET_ITEM(__pyx_k_tuple_144, 0, ((PyObject *)__pyx_n_s__self)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__self)); __Pyx_INCREF(((PyObject *)__pyx_n_s__image)); PyTuple_SET_ITEM(__pyx_k_tuple_144, 1, ((PyObject *)__pyx_n_s__image)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__image)); __Pyx_INCREF(((PyObject *)__pyx_n_s__out)); PyTuple_SET_ITEM(__pyx_k_tuple_144, 2, ((PyObject *)__pyx_n_s__out)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__out)); __Pyx_INCREF(((PyObject *)__pyx_n_s__mask)); PyTuple_SET_ITEM(__pyx_k_tuple_144, 3, ((PyObject *)__pyx_n_s__mask)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__mask)); __Pyx_INCREF(((PyObject *)__pyx_n_s__lmask)); PyTuple_SET_ITEM(__pyx_k_tuple_144, 4, ((PyObject *)__pyx_n_s__lmask)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__lmask)); __Pyx_INCREF(((PyObject *)__pyx_n_s__lout)); PyTuple_SET_ITEM(__pyx_k_tuple_144, 5, ((PyObject *)__pyx_n_s__lout)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__lout)); __Pyx_INCREF(((PyObject *)__pyx_n_s__lin)); PyTuple_SET_ITEM(__pyx_k_tuple_144, 6, ((PyObject *)__pyx_n_s__lin)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__lin)); __Pyx_INCREF(((PyObject *)__pyx_n_s__tot)); PyTuple_SET_ITEM(__pyx_k_tuple_144, 7, ((PyObject *)__pyx_n_s__tot)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__tot)); __Pyx_INCREF(((PyObject *)__pyx_n_s__idx)); PyTuple_SET_ITEM(__pyx_k_tuple_144, 8, ((PyObject *)__pyx_n_s__idx)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__idx)); __Pyx_INCREF(((PyObject *)__pyx_n_s__t)); PyTuple_SET_ITEM(__pyx_k_tuple_144, 9, ((PyObject *)__pyx_n_s__t)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__t)); __Pyx_INCREF(((PyObject *)__pyx_n_s__val)); PyTuple_SET_ITEM(__pyx_k_tuple_144, 10, ((PyObject *)__pyx_n_s__val)); __Pyx_GIVEREF(((PyObject *)__pyx_n_s__val)); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_144)); /* "_distortion.pyx":755 * * @timeit * def uncorrect(self, image): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* """ * Take an image which has been corrected and transform it into it's raw (with loose of information) */ __pyx_t_3 = __Pyx_CyFunction_NewEx(&__pyx_mdef_11_distortion_10Distortion_13uncorrect, 0, NULL, __pyx_n_s___distortion, ((PyObject *)__pyx_k_codeobj_145)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 755; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; if (PyObject_SetItem(__pyx_t_1, __pyx_n_s__uncorrect, __pyx_t_3)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 755; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_k_codeobj_145 = (PyObject*)__Pyx_PyCode_New(2, 0, 11, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_144, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_132, __pyx_n_s__uncorrect, 755, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_145)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 755; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
756: """
757: Take an image which has been corrected and transform it into it's raw (with loose of information)
758:
759: @param image: 2D-array with the image
760: @return: uncorrected 2D image and a mask (pixels in raw image
761: """
762: if self.LUT is None:
/* "_distortion.pyx":762 * @return: uncorrected 2D image and a mask (pixels in raw image * """ * if self.LUT is None: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* with self._sem: * if self.LUT is None: */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__LUT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 762; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__pyx_t_1 == Py_None); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) {
763: with self._sem:
/* "_distortion.pyx":763 * """ * if self.LUT is None: * with self._sem: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.LUT is None: * self.calc_LUT() */ /*with:*/ { __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___sem); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____exit__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____enter__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L4_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L4_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /*try:*/ { { __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); /*try:*/ { /* "_distortion.pyx":763 * """ * if self.LUT is None: * with self._sem: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.LUT is None: * self.calc_LUT() */ /*except:*/ { __Pyx_AddTraceback("_distortion.Distortion.uncorrect", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_4)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_4); __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_10 = PyObject_Call(__pyx_t_3, __pyx_t_9, NULL); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(__pyx_t_2<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;} __pyx_t_11 = (!__pyx_t_2); if (__pyx_t_11) { __Pyx_GIVEREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_4); __Pyx_ErrRestore(__pyx_t_5, __pyx_t_1, __pyx_t_4); __pyx_t_5 = 0; __pyx_t_1 = 0; __pyx_t_4 = 0; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;} goto __pyx_L19; } __pyx_L19:; __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_exception_handled; } __pyx_L10_except_error:; __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8); goto __pyx_L1_error; __pyx_L9_exception_handled:; __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8); __pyx_L15_try_end:; } } /*finally:*/ { if (__pyx_t_3) { __pyx_t_8 = PyObject_Call(__pyx_t_3, __pyx_k_tuple_82, NULL); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_8); __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_8); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(__pyx_t_11<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } } goto __pyx_L20; __pyx_L4_error:; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L1_error; __pyx_L20:; } goto __pyx_L3; } __pyx_L3:; /* "_distortion.pyx":763 * """ * if self.LUT is None: * with self._sem: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if self.LUT is None: * self.calc_LUT() */ __pyx_k_tuple_82 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_82)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_k_tuple_82); __Pyx_INCREF(Py_None); PyTuple_SET_ITEM(__pyx_k_tuple_82, 0, Py_None); __Pyx_GIVEREF(Py_None); __Pyx_INCREF(Py_None); PyTuple_SET_ITEM(__pyx_k_tuple_82, 1, Py_None); __Pyx_GIVEREF(Py_None); __Pyx_INCREF(Py_None); PyTuple_SET_ITEM(__pyx_k_tuple_82, 2, Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_82));
764: if self.LUT is None:
/* "_distortion.pyx":764 * if self.LUT is None: * with self._sem: * if self.LUT is None: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* self.calc_LUT() * out = numpy.zeros(self.shape,dtype=numpy.float32) */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__LUT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 764; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__pyx_t_1 == Py_None); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) {
765: self.calc_LUT()
/* "_distortion.pyx":765 * with self._sem: * if self.LUT is None: * self.calc_LUT() #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* out = numpy.zeros(self.shape,dtype=numpy.float32) * mask = numpy.zeros(self.shape, dtype=numpy.int8) */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__calc_LUT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 765; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 765; __pyx_clineno = __LINE__; goto __pyx_L8_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L16; } __pyx_L16:; } __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L15_try_end; __pyx_L8_error:; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
766: out = numpy.zeros(self.shape,dtype=numpy.float32)
/* "_distortion.pyx":766 * if self.LUT is None: * self.calc_LUT() * out = numpy.zeros(self.shape,dtype=numpy.float32) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* mask = numpy.zeros(self.shape, dtype=numpy.int8) * lmask = mask.ravel() */ __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__zeros); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_12 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__float32); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__dtype), __pyx_t_12)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_5), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_v_out = __pyx_t_12; __pyx_t_12 = 0;
767: mask = numpy.zeros(self.shape, dtype=numpy.int8)
/* "_distortion.pyx":767 * self.calc_LUT() * out = numpy.zeros(self.shape,dtype=numpy.float32) * mask = numpy.zeros(self.shape, dtype=numpy.int8) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* lmask = mask.ravel() * lout = out.ravel() */ __pyx_t_12 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 767; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_12); __pyx_t_4 = PyObject_GetAttr(__pyx_t_12, __pyx_n_s__zeros); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 767; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shape); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 767; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_12); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 767; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyDict_New(); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 767; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_12)); __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 767; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__int8); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 767; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_12, ((PyObject *)__pyx_n_s__dtype), __pyx_t_9)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 767; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_5), ((PyObject *)__pyx_t_12)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 767; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0; __pyx_v_mask = __pyx_t_9; __pyx_t_9 = 0;
768: lmask = mask.ravel()
/* "_distortion.pyx":768 * out = numpy.zeros(self.shape,dtype=numpy.float32) * mask = numpy.zeros(self.shape, dtype=numpy.int8) * lmask = mask.ravel() #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* lout = out.ravel() * lin = image.ravel() */ __pyx_t_9 = PyObject_GetAttr(__pyx_v_mask, __pyx_n_s__ravel); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 768; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_12 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 768; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_lmask = __pyx_t_12; __pyx_t_12 = 0;
769: lout = out.ravel()
/* "_distortion.pyx":769 * mask = numpy.zeros(self.shape, dtype=numpy.int8) * lmask = mask.ravel() * lout = out.ravel() #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* lin = image.ravel() * tot = self.LUT.coef.sum(axis= -1) */ __pyx_t_12 = PyObject_GetAttr(__pyx_v_out, __pyx_n_s__ravel); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_12); __pyx_t_9 = PyObject_Call(__pyx_t_12, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_v_lout = __pyx_t_9; __pyx_t_9 = 0;
770: lin = image.ravel()
/* "_distortion.pyx":770 * lmask = mask.ravel() * lout = out.ravel() * lin = image.ravel() #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* tot = self.LUT.coef.sum(axis= -1) * for idx in range(self.LUT.shape[0]): */ __pyx_t_9 = PyObject_GetAttr(__pyx_v_image, __pyx_n_s__ravel); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 770; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_12 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 770; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_lin = __pyx_t_12; __pyx_t_12 = 0;
771: tot = self.LUT.coef.sum(axis= -1)
/* "_distortion.pyx":771 * lout = out.ravel() * lin = image.ravel() * tot = self.LUT.coef.sum(axis= -1) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* for idx in range(self.LUT.shape[0]): * t = tot[idx] */ __pyx_t_12 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__LUT); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_12); __pyx_t_9 = PyObject_GetAttr(__pyx_t_12, __pyx_n_s__coef); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__sum); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyDict_New(); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_9)); if (PyDict_SetItem(__pyx_t_9, ((PyObject *)__pyx_n_s__axis), __pyx_int_neg_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_5 = PyObject_Call(__pyx_t_12, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_9)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; __pyx_v_tot = __pyx_t_5; __pyx_t_5 = 0;
772: for idx in range(self.LUT.shape[0]):
/* "_distortion.pyx":772 * lin = image.ravel() * tot = self.LUT.coef.sum(axis= -1) * for idx in range(self.LUT.shape[0]): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* t = tot[idx] * if t<
= 0: */ __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__LUT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__shape); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_9, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; if (PyList_CheckExact(__pyx_t_5) || PyTuple_CheckExact(__pyx_t_5)) { __pyx_t_9 = __pyx_t_5; __Pyx_INCREF(__pyx_t_9); __pyx_t_13 = 0; __pyx_t_14 = NULL; } else { __pyx_t_13 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_14 = Py_TYPE(__pyx_t_9)->tp_iternext; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; for (;;) { if (!__pyx_t_14 && PyList_CheckExact(__pyx_t_9)) { if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_9)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_5 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_13); __Pyx_INCREF(__pyx_t_5); __pyx_t_13++; if (unlikely(0<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #else __pyx_t_5 = PySequence_ITEM(__pyx_t_9, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #endif } else if (!__pyx_t_14 && PyTuple_CheckExact(__pyx_t_9)) { if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_9)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_13); __Pyx_INCREF(__pyx_t_5); __pyx_t_13++; if (unlikely(0<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #else __pyx_t_5 = PySequence_ITEM(__pyx_t_9, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #endif } else { __pyx_t_5 = __pyx_t_14(__pyx_t_9); if (unlikely(!__pyx_t_5)) { if (PyErr_Occurred()) { if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } break; } __Pyx_GOTREF(__pyx_t_5); } __Pyx_XDECREF(__pyx_v_idx); __pyx_v_idx = __pyx_t_5; __pyx_t_5 = 0;
773: t = tot[idx]
/* "_distortion.pyx":773 * tot = self.LUT.coef.sum(axis= -1) * for idx in range(self.LUT.shape[0]): * t = tot[idx] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if t<
= 0: * lmask[idx] = 1 */ __pyx_t_5 = PyObject_GetItem(__pyx_v_tot, __pyx_v_idx); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 773; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_XDECREF(__pyx_v_t); __pyx_v_t = __pyx_t_5; __pyx_t_5 = 0;
774: if t <= 0:
/* "_distortion.pyx":774 * for idx in range(self.LUT.shape[0]): * t = tot[idx] * if t<
= 0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* lmask[idx] = 1 * continue */ __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_int_0, Py_LE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 774; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_11<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 774; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_11) {
775: lmask[idx] = 1
/* "_distortion.pyx":775 * t = tot[idx] * if t<
= 0: * lmask[idx] = 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* continue * val = lin[idx]/t */ if (PyObject_SetItem(__pyx_v_lmask, __pyx_v_idx, __pyx_int_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
776: continue
/* "_distortion.pyx":776 * if t<
= 0: * lmask[idx] = 1 * continue #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* val = lin[idx]/t * lout[self.LUT[idx].idx] += val * self.LUT[idx].coef */ goto __pyx_L21_continue; goto __pyx_L23; } __pyx_L23:;
777: val = lin[idx]/t
/* "_distortion.pyx":777 * lmask[idx] = 1 * continue * val = lin[idx]/t #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* lout[self.LUT[idx].idx] += val * self.LUT[idx].coef * return out, mask */ __pyx_t_5 = PyObject_GetItem(__pyx_v_lin, __pyx_v_idx); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 777; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_12 = __Pyx_PyNumber_Divide(__pyx_t_5, __pyx_v_t); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 777; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_v_val); __pyx_v_val = __pyx_t_12; __pyx_t_12 = 0;
778: lout[self.LUT[idx].idx] += val * self.LUT[idx].coef
/* "_distortion.pyx":778 * continue * val = lin[idx]/t * lout[self.LUT[idx].idx] += val * self.LUT[idx].coef #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* return out, mask */ __pyx_t_12 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__LUT); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_12); __pyx_t_5 = PyObject_GetItem(__pyx_t_12, __pyx_v_idx); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__idx); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_GetItem(__pyx_v_lout, __pyx_t_12); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__LUT); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyObject_GetItem(__pyx_t_4, __pyx_v_idx); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__coef); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Multiply(__pyx_v_val, __pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyObject_SetItem(__pyx_v_lout, __pyx_t_12, __pyx_t_4)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_L21_continue:; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
779: return out, mask
/* "_distortion.pyx":779 * val = lin[idx]/t * lout[self.LUT[idx].idx] += val * self.LUT[idx].coef * return out, mask #<
<
<
<
<
<
<
<
<
<
<
<
<
<
*/ __Pyx_XDECREF(__pyx_r); __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_v_out); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_out); __Pyx_GIVEREF(__pyx_v_out); __Pyx_INCREF(__pyx_v_mask); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_v_mask); __Pyx_GIVEREF(__pyx_v_mask); __pyx_r = ((PyObject *)__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_12); __Pyx_AddTraceback("_distortion.Distortion.uncorrect", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_out); __Pyx_XDECREF(__pyx_v_mask); __Pyx_XDECREF(__pyx_v_lmask); __Pyx_XDECREF(__pyx_v_lout); __Pyx_XDECREF(__pyx_v_lin); __Pyx_XDECREF(__pyx_v_tot); __Pyx_XDECREF(__pyx_v_idx); __Pyx_XDECREF(__pyx_v_t); __Pyx_XDECREF(__pyx_v_val); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); __pyx_r = __pyx_pf_5numpy_7ndarray___getbuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); __Pyx_RefNannyFinishContext(); return __pyx_r; }