Please keep discussion son the list.

On May 15, 2015, at 5:19 AM, chasiot...@math.auth.gr wrote:

> Yes, I am asking whether that integer can be exactly represented on a 
> computer.
Yes, but it requires significant effort to do so because you need 
arbitrary-precision algorithms.


> I use 64 bit.
> 
> I have changed 64 up to 1024 but nothing changed.
I don't think we are talking about the same thing here.


> I have tried also to use Rmpfr package, but I haven't solved my problem?
You have not clearly stated what the problem is you are trying to solve. 
Clearly you don't need to know whether the number is an integer - you already 
know it is. You also know that a number of that size cannot be exactly 
represented natively in your computer. So asking whether it turns out to be a 
whole number or not is asking a question about the machine precision and the 
algorithm, not about the number. 


> How do you think I can use the Rmpfr package?
> 2^63-1
[1] 9.223372e+18

> print(2^63 - 1, digits=19)
[1] 9223372036854775808       # wrong!

library(Rmpfr)
a <- mpfr(2, 64)
print(a^63 - 1, digits=19)
1 'mpfr' number of precision  64   bits 
[1] 9223372036854775807       # correct!

... but you will need to change the code that does the calculation so that it 
uses mpfr-class number with enough precision to safely avoid rounding errors 
for the size of all intermediate values in your calculation. Probably this 
means you will write your own determinant algorithm - and if this is just for 
one matrix it doesn't need to be fast so why not. Google tells me there are 
division-free algorithms for calculating determinants that are O(n^4). But as I 
wrote above, I can't imagine why this makes sense.


B.



> 
> 
> Vasilis
> 

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to