0

同様の問題があると思います:

メモリビューを含む構造体を定義します。

ctypedef double[:] vector
ctypedef double[:,::1] matrix

ctypedef struct my_struct:
    matrix A
    vector b

今、私はそのような構造体を次のように初期化します:

cdef my_struct *instance = <my_struct*>malloc(sizeof(my_struct))
instance.A = 2*np.eye(3, dtype='double')
instance.b = np.zeros((3,), dtype='double')

print(matmul(instance.A, instance.B))

今は無視matmulしてください (行列の乗算を計算するための十分にテストされた cython 関数です)。instance.A = ...私が得るエラーは、割り当て行の SIGSEGV (11)です。動作するはずです(quaタイプ)。実際、A が構造体の内部にない場合、この代入は機能します。

4

0 に答える 0