Sto facendo alcuni calcoli intensivi e convertito il codice in Cython. Ho fatto Profiling opzione -a Cython con, e ispezionato il file .html, e sembra ogni volta che faccio la divisione galleggiante, c'è un po 'la linea gialla e lo fa qualcosa di simile al seguente:Cython float division PyExc_ZeroDivisionError checking
if (unlikely(__pyx_t_37 == 0)) {
PyErr_Format(PyExc_ZeroDivisionError, "float division");
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
Credo che è per i casi in cui il divisore è 0. Sto usando una costante per quello e non c'è probabilità che il divisore sia 0, e mi chiedevo se c'è qualcosa che posso fare per renderlo più veloce.
Stai già utilizzando 'cdef float yourconstant' (e anche per l'altra parte della divisione)? Puoi mostrare un po 'del codice? – TryPyPy
Hmm, sembra che piaccia 'cdef double' meglio. – TryPyPy