]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MINICERN/mathlib/gen/c/freq.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / c / freq.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1996/04/01 15:01:53 mclareni
6* Mathlib gen
7*
8*
9#include "gen/pilot.h"
10#if defined(CERNLIB_DOUBLE)
11 FUNCTION FREQ(X)
12
13 DIMENSION P2(0:4),Q2(0:4)
14
15 PARAMETER(Z1 = 1, HF = Z1/2)
16 PARAMETER(C1 = 0.56418 958, W2 = 1.41421 356, RW2 = 1/W2)
17
18 DATA P10,Q10,P11 /+3.67678 77, +3.25845 93, -9.79704 65E-2/
19
20 DATA (P2(I),Q2(I),I=0,4)
21 +/+7.37388 83E+0, +7.37396 09E+0, +6.86501 85E+0, +1.51849 08E+1,
22 1 +3.03179 93E+0, +1.27955 30E+1, +5.63169 62E-1, +5.35421 68E+0,
23 2 +4.31877 87E-5, +1/
24
25 DATA P30,Q30,P31 /-1.24368 54E-1, +4.40917 06E-1, -9.68210 36E-2/
26
27 V=RW2*ABS(X)
28 IF(V .LT. HF) THEN
29 Y=V**2
30 H=V*(P10+P11*Y)/(Q10+Y)
31 HC=1-H
32 ELSEIF(V .LT. 4) THEN
33 AP=P2(4)
34 AQ=Q2(4)
35 DO 2 I = 3,0,-1
36 AP=P2(I)+V*AP
37 2 AQ=Q2(I)+V*AQ
38 HC=EXP(-V**2)*AP/AQ
39 H=1-HC
40 ELSE
41 Y=1/V**2
42 HC=EXP(-V**2)*(C1+Y*(P30+P31*Y)/(Q30+Y))/V
43 H=1-HC
44 ENDIF
45 IF(X .GT. 0) THEN
46 FREQ=HF+HF*H
47 ELSE
48 FREQ=HF*HC
49 ENDIF
50 RETURN
51 END
52#endif