sympy() returns a character string, not an R numeric -- it shouldn't automatically return an R numeric since R can't represent all the numbers that sympy can.
The development version of rSymPy has a second class which produces objects of class c("Sym", "character") and those can be manipulated with +, -, *, / producing other Sym objects so try this: library(rSymPy) # next line pulls in code to handle Sym objects source("http://rsympy.googlecode.com/svn/trunk/R/Sym.R") # define factorial to return a Sym object factorial.Sym <- function(n) Sym("factorial(", n, ")") sum1 <- function(l,u,t,i,n,w) { v <- 0 for (m in 0 :w) { v1 <- ((u^(1/2))*(l^(1/2))*t)^(i-n+2*m) v2 <- (factorial.Sym(i-n+m))*(factorial.Sym(m)) v3 <- v1/v2 v <- v+v3 } sympy(v) } s <- sum1(1,2,10,80,3,80) s # Sym object as.numeric(s) # numeric On Thu, Apr 23, 2009 at 10:00 AM, molinar <sky...@hotmail.com> wrote: > > Here is what I did: > library(rSymPy) > factorial.sympy <- function(n) sympy(paste("factorial(", n, ")")) > factorial.sympy(171) > [1] > "1241018070217667823424840524103103992616605577501693185388951803611996075221691752992751978120487585576464959501670387052809889858690710767331242032218484364310473577889968548278290754541561964852153468318044293239598173696899657235903947616152278558180061176365108428800000000000000000000000000000000000000000" >> > Which work perfectly. > > Here is one of my summation functions: > > sum1 <- function(l,u,t,i,n,w) { > + v <- 0 > + for (m in 0 :w) { > + v1 <- ((u^(1/2))*(l^(1/2))*t)^(i-n+2*m) > + v2 <- (factorial.sympy(i-n+m))*(factorial.sympy(m)) > + v3 <- v1/v2 > + v <- v+v3 > + } > + return(v) > + } > > sum1(1,2,10,80,3,80) > Error in (factorial.sympy(i - n + m)) * (factorial.sympy(m)) : > non-numeric argument to binary operator > > I'm not sure why it works when I do the factorial normally but when I call > my function it doesn't work? > > > > > > > > molinar wrote: >> >> Thank you everyone all of your posts were very helpful. I tried each one >> and I think I have about 10 new packages installed. The formula I need to >> calculate did not involve any logarithms but infinite summations of >> factorials, I'm sorry for not specifying. I read some things about using >> logarithms but I thought in my case I would have to do an e to the log and >> by doing that R still gave me the same problems with numbers over 170. >> >> But I was able to get it to work by using the last post about the rsympy >> packages. >> >> I tried downloading bc but I didn't know how to connect it to R, so R said >> "could not find function bc". >> >> Thanks again for all of your help. >> Samantha >> >> >> >> >> >> Gabor Grothendieck wrote: >>> >>> Also the R sympy package can handle this: >>> >>>> library(rSymPy) >>> Loading required package: rJava >>> >>>> factorial.sympy <- function(n) sympy(paste("factorial(", n, ")")) >>> >>>> # note that first time sympy is called it loads java, jython and sympy >>>> # but on subsequent calls its faster. So make a dummy call first. >>>> factorial.sympy(10) >>> [1] "3628800" >>> >>>> # code from earlier post defining factorial.bc to be inserted here >>> >>>> benchmark(replications=10, columns=c('test', 'elapsed'), >>> + bc=factorial.bc(500), >>> + sympy = factorial.sympy(500)) >>> test elapsed >>> 1 bc 2.17 >>> 2 sympy 0.09 >>> >>> See the rSymPy, r-bc and rbenchmark home pages: >>> http://rsympy.googlecode.com >>> http://r-bc.googlecode.com >>> http://rbenchmark.googlecode.com >>> >>> On Wed, Apr 22, 2009 at 3:21 PM, molinar <sky...@hotmail.com> wrote: >>>> >>>> I am working on a project that requires me to do very large factorial >>>> evaluations. On R the built in factorial function and the one I created >>>> both are not able to do factorials over 170. The first gives an error >>>> and >>>> mine return Inf. >>>> >>>> Is there a way to have R do these larger calculations (the calculator in >>>> accessories can do 10000 factorial and Maple can do even larger) >>>> -- >>>> View this message in context: >>>> http://www.nabble.com/large-factorials-tp23175816p23175816.html >>>> Sent from the R help mailing list archive at Nabble.com. >>>> >>>> ______________________________________________ >>>> R-help@r-project.org mailing list >>>> 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. >>>> >>> >>> ______________________________________________ >>> R-help@r-project.org mailing list >>> 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. >>> >>> >> >> > > -- > View this message in context: > http://www.nabble.com/large-factorials-tp23175816p23197344.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help@r-project.org mailing list > 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. > ______________________________________________ R-help@r-project.org mailing list 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.