[Numpy-discussion] Deprecate boolean math operators?

josef.pktd at gmail.com josef.pktd at gmail.com
Fri Dec 6 15:30:47 EST 2013


On Fri, Dec 6, 2013 at 2:59 PM, Nathaniel Smith <njs at pobox.com> wrote:
> On Fri, Dec 6, 2013 at 11:55 AM, Alexander Belopolsky <ndarray at mac.com> wrote:
>>
>>
>>
>> On Fri, Dec 6, 2013 at 1:46 PM, Alan G Isaac <alan.isaac at gmail.com> wrote:
>>>
>>> On 12/6/2013 1:35 PM, josef.pktd at gmail.com wrote:
>>> > unary versus binary minus
>>>
>>> Oh right; I consider binary `-` broken for
>>> Boolean arrays. (Sorry Alexander; I did not
>>> see your entire issue.)
>>>
>>>
>>> > I'd rather write ~ than unary - if that's what it is.
>>>
>>> I agree.  So I have no objection to elimination
>>> of the `-`.
>>
>>
>> It looks like we are close to reaching a consensus on the following points:
>>
>> 1. * is well-defined on boolean arrays and may be used in preference of & in
>> code that is designed to handle 1s and 0s of any dtype in addition to
>> booleans.
>>
>> 2. + is defined consistently with * and the only issue is the absence of
>> additive inverse.  This is not a problem as long as presence of - does not
>> suggest otherwise.
>>
>> 3. binary and unary minus should be deprecated because its use in
>> expressions where variables can be either boolean or numeric would lead to
>> subtle bugs.  For example -x*y would produce different results from -(x*y)
>> depending on whether x is boolean or not.  In all situations, ^ is
>> preferable to binary - and ~ is preferable to unary -.
>>
>> 4. changing boolean arithmetics to auto-promotion to int is precluded by a
>> significant use-case of boolean matrices.
>
> +1

+0.5
(I would still prefer a different binary minus, but it would be
inconsistent with a logical unary minus that negates.)

5. `/` is useless
6 `**` follows from 1.

Josef


>
> --
> Nathaniel J. Smith
> Postdoctoral researcher - Informatics - University of Edinburgh
> http://vorpus.org
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion



More information about the NumPy-Discussion mailing list