On Tue, Apr 6, 2010 at 8:40 AM, Romain Francois
<romain at r-enthusiasts.com> wrote:
Le 06/04/10 15:32, Dirk Eddelbuettel a ?crit :
On 6 April 2010 at 14:27, Romain Francois wrote:
|> Perhaps I am not answering the question that you asked - that sort of
|> thing happens when answering email while still on the first cup of
|> coffee. More helpful might be the comments in the limits include file
|> for libstdc++ on Debian/Ubuntu
|>
|> // The numeric_limits<> traits document implementation-defined
aspects
|> // of fundamental arithmetic data types (integers and floating
points).
|> // From Standard C++ point of view, there are 13 such types:
|> // * integers
|> // bool
(1)
|> // char, signed char, unsigned char (3)
|> // short, unsigned short (2)
|> // int, unsigned (2)
|> // long, unsigned long
(2)
|> //
|> // * floating points
|> // float (1)
|> // double (1)
|> // long double
(1)
|> //
|> // GNU C++ understands (where supported by the host C-library)
|> // * integer
|> // long long, unsigned long long (2)
|> //
|> // which brings us to 15 fundamental arithmetic data types in GNU C++.
|>
|> So it looks like short is part of standard C++ but not long long.
|
| Even better, thanks again.
Not to beat a dead horse (and yours, at that) but the long long and
unsigned
long long are hence not portable but GNU g++ dependent.
I have not touched long long and unsigned long long so we are still in
standard c++.
If I do them, they will be hidden in #ifdef __GNUC__
What do you plan to do about wrapping a std::vector<long double>?
There is no corresponding data type in R. With something like long
long you can map to a double which takes most of the range without
round-off but a long double will either be truncated by mapping to a
double or will need some crafty construction in R.