]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MINICERN/mathlib/gen/c/theta1.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / c / theta1.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1996/04/01 15:02:00  mclareni
6 * Mathlib gen
7 *
8 *
9 #include "gen/pilot.h"
10       FUNCTION THETA1(U,Q)
11 C-----COMPUTATION OF THETA-SERIES. U=ARGUMENT, Q=JACOBI'S NOME.
12       THETA1=2.*SIN(U)
13       GO TO 1
14 #if (defined(CERNLIB_CDC))&&(defined(CERNLIB_F4))
15       ENTRY THETA2
16 #endif
17 #if !defined(CERNLIB_CDC)||!defined(CERNLIB_F4)
18       ENTRY THETA2(U,Q)
19 #endif
20       THETA1=2.*COS(U)
21     1 IF(THETA1.EQ.0.) RETURN
22       C=THETA1**2-2.
23       B=THETA1*SQRT(SQRT(Q))
24       A=C*B-B
25       QQ=Q**2
26       THETA1=QQ*A+B
27       QM=QQ
28       QN=QQ
29       GO TO 3
30 #if (defined(CERNLIB_CDC))&&(defined(CERNLIB_F4))
31       ENTRY THETA3
32 #endif
33 #if !defined(CERNLIB_CDC)||!defined(CERNLIB_F4)
34       ENTRY THETA3(U,Q)
35 #endif
36       A= 2.*COS(U+U)
37       GO TO 2
38 #if (defined(CERNLIB_CDC))&&(defined(CERNLIB_F4))
39       ENTRY THETA4
40 #endif
41 #if !defined(CERNLIB_CDC)||!defined(CERNLIB_F4)
42       ENTRY THETA4(U,Q)
43 #endif
44       A=-2.*COS(U+U)
45     2 C=A
46       THETA1=Q*A+1.
47       QM=Q
48       QN=Q
49       QQ=Q**2
50       B=2.
51     3 DO 4 I=1,30
52       QM=QQ*QM
53       QN=QM*QN
54       IF(QN.LT.3E-15) GO TO 5
55       B=C*A-B
56       THETA1=QN*B+THETA1
57       QM=QQ*QM
58       QN=QM*QN
59       IF(QN.LT.3E-15) GO TO 5
60       A=C*B-A
61     4 THETA1=QN*A+THETA1
62     5 RETURN
63       END