In my opinion, with the caveat that anyone that asks for the sign of a complex number gets what they deserve, this seems about as useful a definition as any.
On Fri, Dec 22, 2023 at 8:23 AM <m...@astro.utoronto.ca> wrote: > Hi All, > > A long-standing, small wart in numpy has been that the definition of sign > for complex numbers is really useless (`np.sign(z)` gives the sign of the > real component, unless that is zero, in which case it gives the sign of the > imaginary component, in both cases as a complex number with zero imaginary > part). Useless enough, in fact, that in the Array API it is suggested [1] > that sign should return `z / |z|` (a definition consistent with those of > reals, giving the direction in the complex plane). > > The question then becomes what to do. My suggestion - see > https://github.com/numpy/numpy/pull/25441 - is to adapt the Array API > definition for numpy 2.0, with the logic that if we don't change it in 2.0, > when will we? > > Implementing it, I found no real test failures except one for > `np.geomspace`, where it turned out that to correct the failure, the new > definition substantially simplified the implementation. > > Furthermore, with the redefinition, it has become possible to extend > ``np.copysign(x1, x2)`` to complex numbers, since it can now generally > return ``|x1| * sign(x2)`` with the sign as defined above (with no special > treatment for zero). > > Anyway, to me the main question would be whether this would break any > workflows (though it is hard to see how it could, given that the previous > definition was really rather useless...). > > Thanks, > https://github.com/data-apis/array-api/pull/556, > Marten > > [1] > https://data-apis.org/array-api/latest/API_specification/generated/array_api.sign.html > (and https://github.com/data-apis/array-api/pull/556, which has links to > previous discussion) > _______________________________________________ > NumPy-Discussion mailing list -- numpy-discussion@python.org > To unsubscribe send an email to numpy-discussion-le...@python.org > https://mail.python.org/mailman3/lists/numpy-discussion.python.org/ > Member address: ndbeck...@gmail.com > -- *Those who don't understand recursion are doomed to repeat it*
_______________________________________________ NumPy-Discussion mailing list -- numpy-discussion@python.org To unsubscribe send an email to numpy-discussion-le...@python.org https://mail.python.org/mailman3/lists/numpy-discussion.python.org/ Member address: arch...@mail-archive.com