![](https://secure.gravatar.com/avatar/da3a0a1942fbdc5ee9a9b8115ac5dae7.jpg?s=120&d=mm&r=g)
Tue, 19 Oct 2010 01:09:54 -0600, Charles R Harris wrote: [clip]
Just a quick look. I wasn't able to add comments to the code, maybe a pull request would allow that or maybe you need to enable something.
I think you can only add comments on commits, not in Github's compare view.
Also, it is best to work in a branch, see the new notes<%20%20%20%20http://docs.scipy.org/doc/numpy/dev/gitwash/ development_workflow.html> on the GIT workflow.
That work is in a separate branch, called `fix_structured_compare` :) But perhaps we should just recommend people filing pull requests right away?
I'm not sure how broadcasting is supposed to work for structured arrays so I will leave that to someone else. ISTR that the SUN compiler is persnickety about the initialization of structures, only accepts constants or some such. I'll try to track that down or maybe someone here who is familiar with that compiler can comment.
I suspect that this comparison code should refuse to compare arrays with shape(a) != shape(b), even if `a` and `b` are broadcastable to one another. The issue is that the broadcasting semantics work on the array level, but here the boolean sub-array is implicitly reduced to a single boolean. You can also initialize dimensions = shape(self) + (-1,) and let PyArray_Newshape do the size calculation for you. I guess it's best to not initialize structures directly, if there is some suspicion that obscure compilers don't like it. -- Pauli Virtanen