Should both parts of a complex number be printed to the same precision? The imaginary part of 0 looks a bit odd when log10(real/imag) >=~ getOption("digits"), but I'm not sure it is awful. Some people might expect the same number of significant digits in the two parts.> 1e7+4i[1] 10000000+0i> 1e7+5i[1] 10000000+0i> 1e10 + 1000i[1] 1e+10+0e+00i> getOption("digits")[1] 7> options(digits=4) > 1e4+4i[1] 10000+0i> 1e7+1000i[1] 10000000+0i> version_ platform i386-pc-mingw32 arch i386 os mingw32 system i386, mingw32 status Under development (unstable) major 2 minor 11.0 year 2010 month 03 day 07 svn rev 51225 language R version.string R version 2.11.0 Under development (unstable) (2010-03-07 r51225) Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com
On Wed, 24 Mar 2010, William Dunlap wrote:> Should both parts of a complex number be printed > to the same precision? The imaginary part of 0 > looks a bit odd when log10(real/imag) >=~ getOption("digits"), > but I'm not sure it is awful. Some people might > expect the same number of significant digits in the > two parts.'significant digits' is documented in ?signif and xref-ed in ?print. So, yes, the are 'printed to the same precision' for the definition given of 'precision'. (One can argue that precision is relative to the modulus, but this definition is a close approximation.)>From the NEWS for 2.4.0:o Printing of complex numbers could misbehave when one of the parts was large (so scientific notation was used) and the other was so much smaller that it had no significant digits and should have been printed as zero (e.g. 1e80+3e44i). and 2.2.0 o signif() on complex numbers now rounds jointly to give the requested number of digits in the larger component, not independently for each component.> >> 1e7+4i > [1] 10000000+0i >> 1e7+5i > [1] 10000000+0i >> 1e10 + 1000i > [1] 1e+10+0e+00i >> getOption("digits") > [1] 7... -- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
I'm not sure it's awful either, but it is surprising -- at least to my eye. In particular, it is using the same amount of real estate as it would to print the "right" value. Pat On 25/03/2010 01:14, William Dunlap wrote:> Should both parts of a complex number be printed > to the same precision? The imaginary part of 0 > looks a bit odd when log10(real/imag)>=~ getOption("digits"), > but I'm not sure it is awful. Some people might > expect the same number of significant digits in the > two parts. > >> 1e7+4i > [1] 10000000+0i >> 1e7+5i > [1] 10000000+0i >> 1e10 + 1000i > [1] 1e+10+0e+00i >> getOption("digits") > [1] 7 > >> options(digits=4) >> 1e4+4i > [1] 10000+0i >> 1e7+1000i > [1] 10000000+0i > >> version > _ > > platform i386-pc-mingw32 > > arch i386 > > os mingw32 > > system i386, mingw32 > > status Under development (unstable) > > major 2 > > minor 11.0 > > year 2010 > > month 03 > > day 07 > > svn rev 51225 > > language R > > version.string R version 2.11.0 Under development (unstable) (2010-03-07 > r51225) > > Bill Dunlap > Spotfire, TIBCO Software > wdunlap tibco.com > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel >-- Patrick Burns pburns at pburns.seanet.com http://www.burns-stat.com (home of 'Some hints for the R beginner' and 'The R Inferno')