[AIT logo]

Institut für Astronomie und Astrophysik

Abteilung Astronomie

Sand 1, D-72076 Tübingen, Germany
New Address!   --   Neue Adresse!
[Uni logo]


POIDEV Source code in poidev.pro

POIDEV

Name
     POIDEV
Purpose
     Generate a Poisson random deviate
Explanation
     Return an integer random deviate drawn from a Poisson distribution with
     a specified mean.    Adapted from procedure of the same name in
     "Numerical Recipes" by Press et al. (1992), Section 7.3
     NOTE: This routine became partially obsolete in V5.0 with the
     introduction of the POISSON keyword to the intrinsic functions
     RANDOMU and RANDOMN.     However, POIDEV is still useful for adding
     Poisson noise to an existing image array, for which the coding is much
     simpler than it would be using RANDOMU (see example 1)
Calling Sequence
     result = POIDEV( xm, [ SEED = ] )
Input Parameters
     xm - numeric scalar, vector or array, specifying the mean(s) of the
          Poisson distribution
Output Parameters
     result - Long integer scalar or vector, same size as xm
 OPTIONAL KEYWORD INPUT-OUTPUT:
     SEED -  Scalar to be used as the seed for the random distribution.
             For best results, SEED should be a large (>100) integer.
             If SEED is undefined, then its value is taken from the system
             clock (see RANDOMU).    The value of SEED is always updated
             upon output.   This keyword can be used to have POIDEV give
             identical results on consecutive runs.
Example
     (1) Add Poisson noise to an integral image array, im
              IDL> imnoise = POIDEV( im)
     (2) Verify the expected mean  and sigma for an input value of 81
              IDL> p = POIDEV( intarr(10000) + 81)   ;Test for 10,000 points
              IDL> print,avg(p),sigma(p)
     Average and sigma of the 10000 points should be close to 81 and 9
Procedure
     For small values (< 20) independent exponential deviates are generated
     until their sum exceeds the specified mean, the number of events
     required is returned as the Poisson deviate.   For large (> 20) values,
     uniform random variates are compared with a Lorentzian distribution
     function.
Note
     Negative values in the input array will be returned as zeros.
     Versions 5.1.1 and 5.2 of IDL have a bug in the RANDOMU function, such
     that it is initialized to the same value at the start of each IDL session
     rather than being initialized to the system clock.    This bug will affect
     POIDEV in a similar manner.
Revision History
      Version 1               Wayne Landsman        July  1992
      Added SEED keyword                            September 1992
      Call intrinsic LNGAMMA function               November 1994
      Converted to IDL V5.0   W. Landsman   September 1997

Last modified by pro2html on 2002 April 27 at 03:40 UTC

[Home Page] [Software, Documentation] [IDL Documentation] [Quick Reference] [Feedback]

Jörn Wilms (wilms@astro.uni-tuebingen.de)
Updated automatically