This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author gvanrossum
Recipients gvanrossum, mark.dickinson, pitrou, serhiy.storchaka, vstinner
Date 2015-01-13.19:42:57
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <CAP7+vJKMpS1XMZZSq4SoA8e_gSkjErg=OQdFM770-W=eV=fPqA@mail.gmail.com>
In-reply-to <1421177880.98.0.273107629303.issue23229@psf.upfronthosting.co.za>
Content
OK, let's not try to resolve that issue, we can just note it in the docs.
BTW I don't want repr() of a complex number to use the complex(..., ...)
notation -- it's too verbose.

On Tue, Jan 13, 2015 at 11:38 AM, Serhiy Storchaka <report@bugs.python.org>
wrote:

>
> Serhiy Storchaka added the comment:
>
> > Another possible "fix" is to introduce a new 'imaginary' type, such that
> the type of an imaginary literal is now 'imaginary' rather than 'complex',
> and arithmetic operations like addition can special-case the addition of a
> float to an 'imaginary' instance to produce a complex number with exactly
> the right bits. The C standardisation folks already tried this: C99
> introduces optional "imaginary" types and a new _Imaginary keyword, but
> last time I looked almost none of the popular compilers supported those
> types.  (I think Intel's icc might be an exception.)  While this works as a
> technical solution, IMO the cure is worse than the disease; I don't want to
> think about the user-confusion that would result from having separate
> "complex" and "imaginary" types.
>
> This type should exist only at compile time. Peephole optimizer should
> replace it with complex after folding constants.
>
> Or may be repr() (and str()) should keep zero real part if imaginary part
> is negative and output period if real part is zero. For now:
>
> >>> z = complex(0.0, 3.4); z; eval(repr(z))
> 3.4j
> 3.4j
> >>> z = complex(0.0, -3.4); z; eval(repr(z))
> -3.4j
> (-0-3.4j)
> >>> z = complex(-0.0, 3.4); z; eval(repr(z))
> (-0+3.4j)
> 3.4j
> >>> z = complex(-0.0, -3.4); z; eval(repr(z))
> (-0-3.4j)
> -3.4j
>
> But all this perhaps is offtopic here.
>
> ----------
>
> _______________________________________
> Python tracker <report@bugs.python.org>
> <http://bugs.python.org/issue23229>
> _______________________________________
>
History
Date User Action Args
2015-01-13 19:42:57gvanrossumsetrecipients: + gvanrossum, mark.dickinson, pitrou, vstinner, serhiy.storchaka
2015-01-13 19:42:57gvanrossumlinkissue23229 messages
2015-01-13 19:42:57gvanrossumcreate