[Numpy-discussion] Array views

Pearu Peterson pearu.peterson at gmail.com
Tue Mar 29 03:35:45 EDT 2011


On Tue, Mar 29, 2011 at 8:13 AM, Pearu Peterson <pearu.peterson at gmail.com>wrote:

>
>
> On Mon, Mar 28, 2011 at 10:44 PM, Sturla Molden <sturla at molden.no> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20110329/aa4afd83/attachment.html>


More information about the NumPy-Discussion mailing list