On Tue, Mar 29, 2011 at 8:13 AM, Pearu Peterson <[email protected]>wrote:
> > > On Mon, Mar 28, 2011 at 10:44 PM, Sturla Molden <[email protected]> wrote: > >> Den 28.03.2011 19:12, skrev Pearu Peterson: >> > >> > FYI, f2py in numpy 1.6.x supports also assumed shape arrays. >> >> How did you do that? Chasm-interop, C bindings from F03, or marshalling >> through explicit-shape? >> > > The latter. > Basically, if you have > > subroutine foo(a) > real a(:) > end > > then f2py automatically creates a wrapper subroutine > > subroutine wrapfoo(a, n) > real a(n) > integer n > !f2py intent(in) :: a > !f2py intent(hide) :: n = shape(a,0) > interface > subroutine foo(a) > real a(:) > end > end interface > call foo(a) > end > > that can be wrapped with f2py in ordinary way. > > >> Can f2py pass strided memory from NumPy to Fortran? >> >> > No. I haven't thought about it. > > Now, after little bit of thinking and testing, I think supporting strided arrays in f2py is easily doable. For the example above, f2py just must generate the following wrapper subroutine subroutine wrapfoo(a, stride, n) real a(n) integer n, stride !f2py intent(in) :: a !f2py intent(hide) :: n = shape(a,0) !f2py intent(hide) :: stride = getstrideof(a) interface subroutine foo(a) real a(:) end end interface call foo(a(1:stride:n)) end Now the question is, how important this feature would be? How high I should put it in my todo list? If there is interest, the corresponding numpy ticket should be assigned to me. Best regards, Pearu
_______________________________________________ NumPy-Discussion mailing list [email protected] http://mail.scipy.org/mailman/listinfo/numpy-discussion
