]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MINICERN/mathlib/gen/g/gausin.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / g / gausin.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1996/04/01 15:02:42 mclareni
6* Mathlib gen
7*
8*
9#include "gen/pilot.h"
10#if defined(CERNLIB_DOUBLE)
11 FUNCTION GAUSIN(P)
12
13C Computes a "Normal Deviate"
14C Based on G.W. Hill & A.W. Davis, Algorithm 442 Normal Deviate
15C Collected Algorithms from CACM
16
17 CHARACTER NAME*(*)
18 CHARACTER*80 ERRTXT
19 PARAMETER (NAME = 'GAUSIN')
20 PARAMETER (C = 2.50662 827)
21
22 IF(P .LE. 0 .OR. P .GE. 1) THEN
23 H=0
24 WRITE(ERRTXT,101) P
25 CALL MTLPRT(NAME,'G105.1',ERRTXT)
26 ELSEIF(P .EQ. 0.5) THEN
27 H=0
28 ELSE
29 X=P
30 IF(P .GT. 0.5) X=1-P
31 X=SQRT(-2*LOG(X))
32 X=X-((7.45551*X+450.636)*X+1271.059)/
33 1 (((X+110.4212)*X+750.365)*X+500.756)
34 IF(P .LT. 0.5) X=-X
35 H=C*(P-FREQ(X))*EXP(0.5*X**2)+X
36 ENDIF
37 GAUSIN=H
38 RETURN
39 101 FORMAT('ARGUMENT P =',1P,E15.5,' NOT IN RANGE')
40 END
41#endif