[SciPy-user] 2D arrays in weave.inline
Alan Jackson
alan at ajackson.org
Sat Nov 17 18:30:18 EST 2007
Thanks all for your help. The path I chose was to redo my indexing - that was
the path of least resistance. I'm not sure where the blitz errors came from -
the same code compiled clean with inline, so that is a mystery (I did modify
the arrays for blitz before compiling).
I also created all the arrays I wanted returned in numpy first - which makes for
a really long function call, but it works and it is not too awkward.
I got a speed up of x37 on my real test.
On Sat, 17 Nov 2007 18:16:26 -0500
"william ratcliff" <william.ratcliff at gmail.com> wrote:
> I had good luck with it using blitz type converters (though if there's
> a bug in the C code, it's painful to find ;>). Did you look at the
> array3d example that came with the code? So far, I've been able to
> pass 1,2, and 3d arrays successfully. But, I've been cheating and
> creating the arrays that I want returned in numpy before calling the
> routine in weave and passing them in as arguments. I modify them
> within weave, and then check the results when weave terminates to make
> sure they have the values I think they should have in numpy. Then I
> didn't have to work on figuring out return types, allocating
> memory,etc. I also use blitz type converters.
>
> What kind of errors are you getting? When I was writing my first
> program using weave, I got tons of errors--even if it was something as
> minor as forgetting a ";" in one of the lines of code--one helpful
> thing to do is to find the temporary directory where weave stores the
> c++ versions of your code and deleting it--there should be two
> directories. However, if it's not a simple question of stale code
> lying around, then wade through the pages of output and try to find
> out whether there is a simple bug in your C code. The next possible
> source of error could be a compiler issue--for example, I normally use
> an older version of gcc (I forget, something like 3.4) and upgraded to
> version 4.x (one of the most recent) and found that it no longer
> worked. Is the real code involved something simple enough that you
> can post it?
>
> Cheers,
> William
>
> On Nov 17, 2007 5:44 PM, Alan Jackson <alan at ajackson.org> wrote:
> > On Sat, 17 Nov 2007 22:46:59 +0100
> > Gael Varoquaux <gael.varoquaux at normalesup.org> wrote:
> >
> > > On Sat, Nov 17, 2007 at 03:30:10PM -0600, Alan Jackson wrote:
> > > > This is probably an astonishingly simple question, but I've been
> > > > struggling for some time with it.
> > >
> > > > I am trying to work with weave for the first time, and it is becoming
> > > > clear that I don't understand how 2D arrays get passed.
> > >
> > > Me neither. This is why I use the blitz converter. I modified your
> > > example to use the vlitz converters, it is just so much nicer:
> > >
> >
> > Well, with my *real* code, blitz gave me several pages of errors - I tried
> > treating the 2D arrays as a 1D array, doing all the index arithmetic myself,
> > and that seems to work. Which strikes me as odd...
> >
> > --
> > -----------------------------------------------------------------------
> > | Alan K. Jackson | To see a World in a Grain of Sand |
> > | alan at ajackson.org | And a Heaven in a Wild Flower, |
> > | www.ajackson.org | Hold Infinity in the palm of your hand |
> > | Houston, Texas | And Eternity in an hour. - Blake |
> > -----------------------------------------------------------------------
> > _______________________________________________
> >
> > SciPy-user mailing list
> > SciPy-user at scipy.org
> > http://projects.scipy.org/mailman/listinfo/scipy-user
> >
> _______________________________________________
> SciPy-user mailing list
> SciPy-user at scipy.org
> http://projects.scipy.org/mailman/listinfo/scipy-user
--
-----------------------------------------------------------------------
| Alan K. Jackson | To see a World in a Grain of Sand |
| alan at ajackson.org | And a Heaven in a Wild Flower, |
| www.ajackson.org | Hold Infinity in the palm of your hand |
| Houston, Texas | And Eternity in an hour. - Blake |
-----------------------------------------------------------------------
More information about the SciPy-User
mailing list