1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
# mode: run
from cython cimport view
cdef bint print_upper_right(double[:, :] M):
print M[0, 1]
cdef class MemViewContainer:
cdef double[:, :] A
def __init__(self, A):
self.A = A
cpdef run(self):
print_upper_right(self.A)
print_upper_right(self.A.T)
print_upper_right(self.A.T)
def test_transpose_refcount():
"""
>>> test_transpose_refcount()
2.0
3.0
3.0
"""
cdef double[:, :] A = view.array(shape=(2, 2), itemsize=sizeof(double), format="d")
A[0, 0], A[0, 1], A[1, 0], A[1, 1] = 1., 2., 3., 4.
cdef MemViewContainer container = MemViewContainer(A)
container.run()
|