pyx - Inicialización de Cython C-array
pyx cython (1)
cdef int mom2calc[3]
mom2calc[:] = [1, 2, 3]
Esto funciona en punteros sin procesar (aunque no se comprueban los límites entonces), vistas de memoria y matrices de tamaño fijo. Solo funciona en una dimensión, pero a menudo es suficiente:
cdef int mom2calc[3][3]
mom2calc[0][:] = [1, 2, 3]
mom2calc[1][:] = [4, 5, 6]
mom2calc[2][:] = [7, 8, 9]
me gustaría hacer
cdef int mom2calc[3]
mom2calc[0] = 1
mom2calc[1] = 2
mom2calc[2] = 3
De una manera más compacta. Algo similar a
cdef int mom2calc[3] = [1, 2, 3]
que es una sintaxis de Cython inválida
Nota:
cdef int* mom2calc = [1, 2, 3]
no es una opción porque no puedo (automáticamente) convertirla en una vista de memoria.