I think you fail to understand the floating point arithmetic involved. The smallest floating point number that can be represented to full precision is
> .Machine$double.xmin [1] 2.225074e-308 and > pgamma(.Machine$double.xmin, 0.001, rate=0.01) [1] 0.4904533 Your distribution is so extreme that in computer representation it is largely discrete. Now, on your platform there are denormalized doubles, so > table(rgamma(1e6, 0.001, rate=0.01) < .Machine$double.xmin) FALSE TRUE 509073 490927 > table(rgamma(1e6, 0.001, rate=0.01) == 0) FALSE TRUE 525187 474813 > x <- rgamma(1e6, 0.001, rate=0.01) > sort(x[x> 0]) [1:10] [1] 4.940656e-322 4.940656e-322 4.940656e-322 4.940656e-322 4.940656e-322 [6] 4.940656e-322 4.940656e-322 4.940656e-322 4.940656e-322 4.940656e-322 is pretty much what I expected. On Tue, 29 Aug 2006, [EMAIL PROTECTED] wrote: > Full_Name: Peiyi Xi > Version: R 2.2.0 You are specifically asked NOT to report on obselete versions of R. > OS: Windows XP Professional > Submission from: (NULL) (128.2.3.141) > > > When I use rgamma(n, shape, rate ) to generate gamma samples, it > gives zeros when both shape and rate are very small. > > But we know that if x follows a gamma distribution, x should be positive. > > e.g. > > temp=rgamma(10, 0.001, rate=0.01) > > temp > [1] 2.438078e-33 5.101136e-130 1.760830e-54 2.724731e-166 0.000000e+00 > [6] 4.461151e-146 1.332914e-55 2.336396e-277 0.000000e+00 0.000000e+00 > > temp[5] > [1] 0 > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > -- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595 ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel