Generated by Cython 0.29.23
Yellow lines hint at Python interaction.
Click on a line that starts with a "+" to see the C code that Cython generated for it.
Raw output: math.c
+01: cimport cython
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
02:
03: @cython.boundscheck(False) # Deactivate bounds checking
04: @cython.wraparound(False) # Deactivate negative indexing.
+05: cdef double mv_max(double [:] mv):
static double __pyx_f_7develia_7cytools_4math_mv_max(__Pyx_memviewslice __pyx_v_mv) {
double __pyx_v_output;
double __pyx_v_tmp;
unsigned int __pyx_v_i;
double __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("mv_max", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+06: cdef double output = mv[0]
__pyx_t_1 = 0; __pyx_v_output = (*((double *) ( /* dim=0 */ (__pyx_v_mv.data + __pyx_t_1 * __pyx_v_mv.strides[0]) )));
07: cdef double tmp
08: cdef unsigned int i
+09: for i in range(1,mv.shape[0]):
__pyx_t_2 = (__pyx_v_mv.shape[0]);
__pyx_t_3 = __pyx_t_2;
for (__pyx_t_4 = 1; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
__pyx_v_i = __pyx_t_4;
+10: tmp = mv[i]
__pyx_t_5 = __pyx_v_i;
__pyx_v_tmp = (*((double *) ( /* dim=0 */ (__pyx_v_mv.data + __pyx_t_5 * __pyx_v_mv.strides[0]) )));
+11: if tmp > output:
__pyx_t_6 = ((__pyx_v_tmp > __pyx_v_output) != 0);
if (__pyx_t_6) {
/* … */
}
}
+12: output = tmp
__pyx_v_output = __pyx_v_tmp;
13:
+14: return output
__pyx_r = __pyx_v_output; goto __pyx_L0;
15:
16: @cython.boundscheck(False) # Deactivate bounds checking
17: @cython.wraparound(False) # Deactivate negative indexing.
+18: cdef double mv_min(double [:] mv):
static double __pyx_f_7develia_7cytools_4math_mv_min(__Pyx_memviewslice __pyx_v_mv) {
double __pyx_v_output;
double __pyx_v_tmp;
unsigned int __pyx_v_i;
double __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("mv_min", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+19: cdef double output = mv[0]
__pyx_t_1 = 0; __pyx_v_output = (*((double *) ( /* dim=0 */ (__pyx_v_mv.data + __pyx_t_1 * __pyx_v_mv.strides[0]) )));
20: cdef double tmp
21: cdef unsigned int i
+22: for i in range(1,mv.shape[0]):
__pyx_t_2 = (__pyx_v_mv.shape[0]);
__pyx_t_3 = __pyx_t_2;
for (__pyx_t_4 = 1; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
__pyx_v_i = __pyx_t_4;
+23: tmp = mv[i]
__pyx_t_5 = __pyx_v_i;
__pyx_v_tmp = (*((double *) ( /* dim=0 */ (__pyx_v_mv.data + __pyx_t_5 * __pyx_v_mv.strides[0]) )));
+24: if tmp < output:
__pyx_t_6 = ((__pyx_v_tmp < __pyx_v_output) != 0);
if (__pyx_t_6) {
/* … */
}
}
+25: output = tmp
__pyx_v_output = __pyx_v_tmp;
26:
+27: return output
__pyx_r = __pyx_v_output; goto __pyx_L0;
28:
29:
30:
31: @cython.boundscheck(False) # Deactivate bounds checking
32: @cython.wraparound(False) # Deactivate negative indexing.
+33: cdef double mv_max2d(double [:,:] mv):
static double __pyx_f_7develia_7cytools_4math_mv_max2d(__Pyx_memviewslice __pyx_v_mv) {
double __pyx_v_output;
double __pyx_v_tmp;
unsigned int __pyx_v_i;
Py_ssize_t __pyx_v_j;
double __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("mv_max2d", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+34: cdef double output = mv[0,0]
__pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_v_output = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_mv.data + __pyx_t_1 * __pyx_v_mv.strides[0]) ) + __pyx_t_2 * __pyx_v_mv.strides[1]) )));
35: cdef double tmp
36: cdef unsigned int i
+37: for i in range(0,mv.shape[0]):
__pyx_t_3 = (__pyx_v_mv.shape[0]);
__pyx_t_4 = __pyx_t_3;
for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
__pyx_v_i = __pyx_t_5;
+38: for j in range(0, mv.shape[1]):
__pyx_t_6 = (__pyx_v_mv.shape[1]);
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_j = __pyx_t_8;
+39: tmp = mv[i,j]
__pyx_t_9 = __pyx_v_i;
__pyx_t_2 = __pyx_v_j;
__pyx_v_tmp = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_mv.data + __pyx_t_9 * __pyx_v_mv.strides[0]) ) + __pyx_t_2 * __pyx_v_mv.strides[1]) )));
+40: if tmp > output:
__pyx_t_10 = ((__pyx_v_tmp > __pyx_v_output) != 0);
if (__pyx_t_10) {
/* … */
}
}
}
+41: output = tmp
__pyx_v_output = __pyx_v_tmp;
42:
+43: return output
__pyx_r = __pyx_v_output; goto __pyx_L0;
44:
45: @cython.boundscheck(False) # Deactivate bounds checking
46: @cython.wraparound(False) # Deactivate negative indexing.
+47: cdef double mv_min2d(double [:,:] mv):
static double __pyx_f_7develia_7cytools_4math_mv_min2d(__Pyx_memviewslice __pyx_v_mv) {
double __pyx_v_output;
double __pyx_v_tmp;
unsigned int __pyx_v_i;
Py_ssize_t __pyx_v_j;
double __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("mv_min2d", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+48: cdef double output = mv[0,0]
__pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_v_output = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_mv.data + __pyx_t_1 * __pyx_v_mv.strides[0]) ) + __pyx_t_2 * __pyx_v_mv.strides[1]) )));
49: cdef double tmp
50: cdef unsigned int i
+51: for i in range(0,mv.shape[0]):
__pyx_t_3 = (__pyx_v_mv.shape[0]);
__pyx_t_4 = __pyx_t_3;
for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
__pyx_v_i = __pyx_t_5;
+52: for j in range(0, mv.shape[1]):
__pyx_t_6 = (__pyx_v_mv.shape[1]);
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_j = __pyx_t_8;
+53: tmp = mv[i,j]
__pyx_t_9 = __pyx_v_i;
__pyx_t_2 = __pyx_v_j;
__pyx_v_tmp = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_mv.data + __pyx_t_9 * __pyx_v_mv.strides[0]) ) + __pyx_t_2 * __pyx_v_mv.strides[1]) )));
+54: if tmp < output:
__pyx_t_10 = ((__pyx_v_tmp < __pyx_v_output) != 0);
if (__pyx_t_10) {
/* … */
}
}
}
+55: output = tmp
__pyx_v_output = __pyx_v_tmp;
56:
+57: return output
__pyx_r = __pyx_v_output; goto __pyx_L0;
58:
59: @cython.boundscheck(False) # Deactivate bounds checking
60: @cython.wraparound(False) # Deactivate negative indexing.
+61: cdef double mv_argmax(double [:] mv):
static double __pyx_f_7develia_7cytools_4math_mv_argmax(__Pyx_memviewslice __pyx_v_mv) {
double __pyx_v_output;
double __pyx_v_tmp;
unsigned int __pyx_v_index;
unsigned int __pyx_v_i;
double __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("mv_argmax", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+62: cdef double output = mv[0]
__pyx_t_1 = 0; __pyx_v_output = (*((double *) ( /* dim=0 */ (__pyx_v_mv.data + __pyx_t_1 * __pyx_v_mv.strides[0]) )));
63: cdef double tmp
+64: cdef unsigned int index = 0
__pyx_v_index = 0;
65: cdef unsigned int i
+66: for i in range(1,mv.shape[0]):
__pyx_t_2 = (__pyx_v_mv.shape[0]);
__pyx_t_3 = __pyx_t_2;
for (__pyx_t_4 = 1; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
__pyx_v_i = __pyx_t_4;
+67: tmp = mv[i]
__pyx_t_5 = __pyx_v_i;
__pyx_v_tmp = (*((double *) ( /* dim=0 */ (__pyx_v_mv.data + __pyx_t_5 * __pyx_v_mv.strides[0]) )));
+68: if tmp > output:
__pyx_t_6 = ((__pyx_v_tmp > __pyx_v_output) != 0);
if (__pyx_t_6) {
/* … */
}
}
+69: output = tmp
__pyx_v_output = __pyx_v_tmp;
+70: index = i
__pyx_v_index = __pyx_v_i;
71:
72:
+73: return index
__pyx_r = __pyx_v_index; goto __pyx_L0;
74:
75: @cython.boundscheck(False) # Deactivate bounds checking
76: @cython.wraparound(False) # Deactivate negative indexing.
+77: cdef double mv_argmin(double [:] mv):
static double __pyx_f_7develia_7cytools_4math_mv_argmin(__Pyx_memviewslice __pyx_v_mv) {
double __pyx_v_output;
double __pyx_v_tmp;
unsigned int __pyx_v_index;
unsigned int __pyx_v_i;
double __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("mv_argmin", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+78: cdef double output = mv[0]
__pyx_t_1 = 0; __pyx_v_output = (*((double *) ( /* dim=0 */ (__pyx_v_mv.data + __pyx_t_1 * __pyx_v_mv.strides[0]) )));
79: cdef double tmp
+80: cdef unsigned int index = 0
__pyx_v_index = 0;
81: cdef unsigned int i
+82: for i in range(1,mv.shape[0]):
__pyx_t_2 = (__pyx_v_mv.shape[0]);
__pyx_t_3 = __pyx_t_2;
for (__pyx_t_4 = 1; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
__pyx_v_i = __pyx_t_4;
+83: tmp = mv[i]
__pyx_t_5 = __pyx_v_i;
__pyx_v_tmp = (*((double *) ( /* dim=0 */ (__pyx_v_mv.data + __pyx_t_5 * __pyx_v_mv.strides[0]) )));
+84: if tmp < output:
__pyx_t_6 = ((__pyx_v_tmp < __pyx_v_output) != 0);
if (__pyx_t_6) {
/* … */
}
}
+85: output = tmp
__pyx_v_output = __pyx_v_tmp;
+86: index = i
__pyx_v_index = __pyx_v_i;
87:
+88: return index
__pyx_r = __pyx_v_index; goto __pyx_L0;