[Rd] system() in packages
Robin Hankin
r.hankin at noc.soton.ac.uk
Fri Apr 27 16:13:09 CEST 2007
Hello
Quite often I need higher precision, or larger numbers,
than IEEE double precision allows. One strategy I sometimes
use is to use system() to call pari/gp, which is not constrained by
IEEE.
[pari/gp is a GPL high-level mathematical programming language
geared towards pure mathematics]
Two of my packages contain lines like the following:
> system(" echo '1.12^66' | gp -q f",intern=TRUE)
[1]
"1771.697189476241729649767636564084681203806302318041262248838950177194
116346432205160921568393661760"
Note the high precision of the answer.
My question is, how to deal with the possibility that pari/gp is not
installed?
If the system cannot find gp for some reason, I get:
> system(" echo '1.12^66' | gp -q f",intern=TRUE)
sh: line 1: gp: command not found
character(0)
>
What's the recommended way to handle this eventuality gracefully? The
functions that do use pari/gp have "pure" R equivalents (but much
slower and less accurate) so I want users to be able to install the
package without pari/gp.
--
Robin Hankin
Uncertainty Analyst
National Oceanography Centre, Southampton
European Way, Southampton SO14 3ZH, UK
tel 023-8059-7743
More information about the R-devel
mailing list