Dear R users, I run into the following problem and hope someone can help me out. Thank you in advance for your time. I have a function defined recursively as follows: recFun = function(k,x){ #i is less than 10. x can be any real number. I need the value of recFun(k=1,2,3,4, x=0.12). if(k==1) integrand = function(z) (1 + pi*exp(z+0.9*x+0.012))^(-1.5) * dnorm(z) else integrand = function(z) (1 + pi*exp(z+0.9*x+0.012))^(-1.5) * recFun(k-1,z+0.9*x+0.012) * dnorm(z) integrate(integrand, -Inf, Inf) } The goal of the function is to evaluate a quantity satisfying the recursive relation that $$I(1,x)=\int_{-\infty }^{\infty }\left( 1+\pi e^{z+0.9x+0.012}\right)^{-1.5}\Phi (dz),$$ and $$I(k,x)=\int_{-\infty }^{\infty }\left( 1+\pi e^{z+0.9x+0.012}\right) ^{-1.5} I(k-1,z+0.9x+0.012)\Phi (dz),$$ where $\Phi$ is the distribution function of the standard normal distribution. But for k>=2, a roundoff error occurs:> recFun(2,0.12)Error in integrate(integrand, -Inf, Inf) : roundoff error was detected Can someone suggest a solution to this problem? Thanks a lot. Best, Zhongyi [[alternative HTML version deleted]]