[Numpy-discussion] patch for structured array comparison bug

Pauli Virtanen pav at iki.fi
Tue Oct 19 05:24:52 EDT 2010


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




More information about the NumPy-Discussion mailing list