7

いくつかのPythonコードをcythonに移植しようとしていますが、いくつかの小さな問題が発生しています。

以下に、コードのコードスニペット(簡略化した例)を示します。

cimport numpy as np
cimport cython
@cython.boundscheck(False) # turn of bounds-checking for entire function
@cython.wraparound(False)
@cython.nonecheck(False)
def Interpolation(cells, int nmbcellsx):
    cdef np.ndarray[float,ndim=1] celle
    cdef int cellnonzero
    cdef int i,l
    for i in range(nmbcellsx):
          celle = cells[i].e
          cellnonzero = cells[i].nonzero
          for l in range(cellnonzero):
               celle[l] = celle[l] * celle[l]

最も内側のループがCコードに完全に変換されない理由がわかりません(つまり、最後の行、celle [l] = ...)。次の出力を参照してくださいcython -a feedback

ここに画像の説明を入力してください

ここで何が欠けていますか?

どうもありがとう。

4

1 に答える 1

1

関数の最後にある単純な「return0」でこの問題が解決されることにようやく気づきました。しかし、この振る舞いは私にはかなり奇妙に思えます。これは実際にはバグですか?

于 2013-01-06T18:47:29.250 に答える