Abstract

This paper describes generation of nonuniform random variates from Lipschitz-continuous densities using acceptance/rejection, and the class library ranlip which implements this method. It is assumed that the required distribution has Lipschitz-continuous density, which is either given analytically or as a black box. The algorithm builds a piecewise constant upper approximation to the density (the hat function), using a large number of its values and subdivision of the domain into hyperrectangles. The class library ranlip provides very competitive preprocessing and generation times, and yields small rejection constant, which is a measure of efficiency of the generation step. It exhibits good performance for up to five variables, and provides the user with a black box nonuniform random variate generator for a large class of distributions, in particular, multimodal distributions. It will be valuable for researchers who frequently face the task of sampling from unusual distributions, for which specialized random variate generators are not available. Program summary Title of program: Ranlip Catalogue number: ADVP Program summary URL: http://cpc.cs.qub.ac.uk/summaries/ADVP Program obtainable from: CPC Program Library, Queen's University of Belfast, N. Ireland Computers: IBM PC; DEC Alpha Operating systems under which the program has been tested: Windows XP, Linux, Unix Programming language used: C++ Memory required to execute with typical data: 32M No. of bits in a word: 32 No. of processors used: 1 Has the code been vectorized?: No No. of lines in distributed program, including test data, etc.: 52 160 No. of bytes in distributed program, including test data, etc.: 392 625 Distribution format: tar.gz Nature of physical problem:This program allows one to generate nonuniform random vectors from a variety of distributions (especially multimodal), using acceptance/rejection approach. Suitable for non-standard distributions for up to five variables. Method of solution:Assuming Lipschitz-continuous density, a tight overestimate (the hat function) is computed. Then random variates are generated using acceptance/rejection approach. Restrictions on the complexity of the problem:If the number of variables exceeds five, computation of the overestimate is inefficient. Typical running time:Preprocessing 1–5000 s, generation 5 – 20 × 10 −6 s .

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call