5 * Revision 1.1.1.1 1995/10/24 10:19:54 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.41 by S.Giani
15 *=== betrst ===========================================================*
17 FUNCTION BETRST ( GAM, ETA, X0, X1 )
19 #include "geant321/dblprc.inc"
20 #include "geant321/dimpar.inc"
21 #include "geant321/iounit.inc"
23 *----------------------------------------------------------------------*
26 * Created on 20 february 1991 by Alfredo Ferrari & Paola Sala *
29 * Last change on 20-feb-91 by Alfredo Ferrari *
31 * Sampling from beta distribution in [X0,X1) : *
33 * P(X) = X**(GAM-1.D0)*(1.D0-X)**(ETA-1)*GAMM(ETA+GAM) *
34 * / (GAMM(GAM*GAMM(ETA)) *
36 *----------------------------------------------------------------------*
40 * +-------------------------------------------------------------------*
42 IF ( X1 .LT. X0 ) THEN
43 WRITE (LUNOUT,*)' Betrst: x1<x0, gam, eta', X1, X0, GAM, ETA
44 WRITE (LUNERR,*)' Betrst: x1<x0, gam, eta', X1, X0, GAM, ETA
45 X0 = MIN ( X0, ONEONE-0.05 )
46 X1 = MIN ( ONEONE, X0/TWOTHI )
49 * +-------------------------------------------------------------------*
56 NTAM1 = NINT (ETA - 1.D+00)
57 * +-------------------------------------------------------------------*
59 IF ( ETAM1 - NTAM1 .NE. 0.D+00 ) THEN
60 * | +----------------------------------------------------------------*
61 * | | First sample from X**(gam-1) and then reject according to
65 BETRST = ( RNDM (1) * CNORM + X0GAM )**GAMI
66 REJE = ( ( 1.D+00 - BETRST ) / X0TO1 )**ETAM1
67 IF ( RNDM (2) .GE. REJE ) GO TO 100
69 * | +----------------------------------------------------------------*
71 * +-------------------------------------------------------------------*
74 * | +----------------------------------------------------------------*
75 * | | First sample from X**(gam-1) and then reject according to
79 BETRST = ( RNDM (1) * CNORM + X0GAM )**GAMI
80 REJE = ( ( 1.D+00 - BETRST ) / X0TO1 )**NTAM1
81 IF ( RNDM (2) .GE. REJE ) GO TO 200
83 * | +----------------------------------------------------------------*
86 * +-------------------------------------------------------------------*
88 *=== End of function betrst ===========================================*