On Feb 13, 2010, at 5:04 PM, blue sky wrote: > On Fri, Feb 12, 2010 at 12:06 PM, Simon Urbanek > <simon.urba...@r-project.org> wrote: >> >> On Feb 12, 2010, at 12:33 , blue sky wrote: >> >>> R-exts.pdf dosen't list many types that are supported in C++, for example, >>> long. Are there storage.mode corresponds to those extra types? >>> >> >> There are none - that's why they are not listed. As for long: on 32-bit >> platforms (and Win64) int and long are equivalent so you can simply use >> INTSXP. On 64-bit unix platforms (LP64) there is no way to losslessly use it >> (other than raw) but in most applications you can simply use REALSXP as it >> gives you at least 52-bits of precision which its sufficient for most >> applications. > > According to ?integer, > > "Note that on *almost* all implementations of R the range of representable > integers is restricted to about +/-2*10^9: ‘double’s can hold much larger > integers exactly." > > It uses 'almost'. I'm wondering on what platform integer is not restricted to > about +/-2*10^9 so that double's can not hold large integers exactly? >
I'm not sure I can parse your statement including a question, so I'll rather address the two disjoint parts of the quote: a) restriction of representable integers. Today's platforms use 32-bit integers, but on 16-bit platforms is used to be 16-bit hence the "almost". b) doubles can hold much larger integers exactly (note that there is no "almost" in this part) -- that is what I was saying above since doubles can store 52-bit integers without loss of precision. I hope it helps. Cheers, Simon ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel