On 13-08-15 6:07 PM, Aleksey Vorona wrote:
Dear R-team,

I've been using R for a while and decided to contribute some bug
fixes. The first bug I tried to solve was
https://bugs.r-project.org/bugzilla3/show_bug.cgi?id=15411

I have attached a patch with the fix to the bug and would love to hear
comments about its quality.

Also, while testing this bug I found another related issue:
format(complex(real=10, imaginary=4), digits = 1);
[1] "10+0i"

I think this should've been "10+4i". I have entered this as a bug
#15427. But a patch for formatComplex() would be a bigger change, than
the patch for formatReal() I made. So, before I start, I would like to
gauge your opinion.

Do you agree it is a bug?

No, it is a somewhat questionable design, but not a bug. You asked for 1 significant digit. format() will give both the real and imaginary parts accurate to 1 significant digit. Since the real part has two digits, it handles the imaginary part as 04, which is rendered as 0.

The questionable part of the design is that 11+4i would be rendered as 11+0i, i.e. two digits accuracy are given in the real part even though you only asked for one. I think it would be better to be consistent here. I think it makes more sense to give 11+4i (or 10+4i in your example) than to give 10+0i for both, but I think that is a matter of taste, rather than a bug fix.

I have also prepared a patch for the 15411 bug; I'll compare mine to yours and commit something, but not for a week or so: I am mostly offline until then.

Duncan Murdoch

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to