[SciPy-user] weave question

Christian K. ckkart at hoc.net
Tue Feb 26 15:37:22 EST 2008


Christoph Scheit wrote:
> Hi everybody,
> 
> I have a small sniplet in C++ that I run using weave.inline
> in a python-script. Now my problem is, that although it should
> be that way, values of mutable arguments passed to the
> c++-part are only changed locally, i.e. after the inlined part
> are the python-arguments still with the same values... Here
> is the sniplet:
> 
>     obsvPtsMinRt = ones(nPts, dtype=int)
> 
>     code = """

[....]

>                obsvPtsMinRt[i] = minrt;
>            }
>            obsvPtsMinRt[3] = 10.;
>            """
>     weave.inline(code,
>                 ['obsvPtsMinRt', 'obsvPtsMaxRt', 'obsvPts', 'eMidPts', 'dt', 'c0'],
>                 type_converters=converters.blitz,
>                 compiler = 'gcc',
>                 headers=["<ios>", "<ostream>", "<sstream>"])
>     
>     print obsvPtsMinRt

I haven't used weave for a long time, but I think it's due using the
wrong kind of brackets. Use () to index the ndarrays. Then I don't
understand why your small example works, though.

Christian




More information about the SciPy-User mailing list