# Re: [R] Displaying numerics to full double precision

From: Jeff Delmerico <jeffdelmerico_at_yahoo.com>
Date: Wed, 5 Dec 2007 12:16:25 -0800 (PST)

Thanks Ben, that fixed the display within R. However, even after changing the display settings, the matrix elements still appear to be exported in single precision. The matrix object is being passed into my C routines as an SEXP Numeric type, and somewhere along the way, some of the digits are getting lost.
Here's the relevant bit of my C code:

SEXP
divideMatrix(SEXP matrix_in, SEXP sub_height, SEXP sub_width, SEXP fileS) ...
if ( isMatrix(matrix_in) && isNumeric(matrix_in) ) {

```	/* Use R macros to convert from SEXP to C types */
matrix = REAL(matrix_in);
height = INTEGER(GET_DIM(matrix_in));
width = INTEGER(GET_DIM(matrix_in));
subW = INTEGER_VALUE(sub_width);
subH = INTEGER_VALUE(sub_height);
...
```

}

Am I using the wrong macro to convert into a double in C? Any ideas?

Thanks,
Jeff Delmerico

Ben Bolker wrote:

```>
>
>
> Jeff Delmerico wrote:
```

>>
>> I'm working on a shared library of C functions for use with R, and I want
>> to create a matrix in R and pass it to the C routines. I know R computes
>> and supposedly stores numerics in double precision, but when I create a
>> matrix of random numerics using rnorm(), the values are displayed in
>> single precision, and also exported in single precision when I pass them
>> out to my C routines. An example is below:
>>
```>>> a <- matrix(rnorm(16, mean=10, sd=4), nrow=4)
>>> a

>>           [,1]      [,2]      [,3]      [,4]

>> [1,] 14.907606 17.572872 19.708977  9.809943
>> [2,]  9.322041 13.624452  7.745254  7.596176
```
>> [3,] 10.642408 6.151546 9.937434 6.913875
>> [4,] 14.617647 5.577073 8.217559 12.115465
```>>> storage.mode(a)
```

>>  "double"
>>
>> Does anyone know if there is a way to change the display or storage
>> settings so that the values will be displayed to their full precision?
>> Or does rnorm only produce values to single precision?
>>
>> Any assistance would be greatly appreciated.
>>
>> Thanks,
>> Jeff Delmerico
>>
```>
> options("digits") # 7
> options(digits=x)
>
>   I may be mistaken, but I think the values are indeed exported
> as double precision -- the issue here is just a display setting.
>
>   Ben Bolker
>
>
>

```
```--
View this message in context: http://www.nabble.com/Displaying-numerics-to-full-double-precision-tf4950807.html#a14179534
Sent from the R help mailing list archive at Nabble.com.

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