On Feb 13, 2010, at 5:04 PM, blue sky wrote:

> On Fri, Feb 12, 2010 at 12:06 PM, Simon Urbanek

> <

[hidden email]> 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

______________________________________________

[hidden email] mailing list

https://stat.ethz.ch/mailman/listinfo/r-devel