]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MINICERN/mathlib/gen/g/studis.F
Changes needed by ICC/IFC compiler (Intel)
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / g / studis.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 FUNCTION STUDIS(T,N)
11C THIS ROUTINE COMPUTES THE DISTRIBUTION FUNCTION OF THE
12C STUDENT DISTRIBUTION WITH N DEGREES OF FREEDOM.
13C T=VALUE OF THE INDEPENDENT VARIABLE,
14C N=INTEGER GREATER THAN ZERO.
15C THE ROUTINE WAS WRITTEN BY B.E. COOPER,APPLIED STATISTICS,
16C 17(1968)189-190
17C ALGORITHM AS3. THE METHOD WHICH IS THEORETICALLY EXACT WAS GIVEN BY
18C D.B. OWEN,BIOMETRIKA,52(1965),437-446.
19C AT LEAST 9 DECIMAL PLACES ARE CORRECT.
20 DATA G1/0.31830988618379/
21 IF(N-1) 1,2,3
22 2 STUDIS=0.5+G1*ATAN(T)
23 RETURN
24 3 FN=N
25 A=T/SQRT(FN)
26 B=FN/(FN+T*T)
27 S=1.
28 N2=N-2
29 N3=MOD(N,2)
30 IF(N2 .LT. 2) GO TO 4
31 C=1.
32 K=2+N3
33 FK=K
34 DO 5 I=K,N2,2
35 C=C*B*(FK-1.)/FK
36 S=S+C
37 5 FK=FK+2.
38 4 IF(N3 .NE. 0) GO TO 6
39 STUDIS=0.5+0.5*A*SQRT(B)*S
40 RETURN
41 6 STUDIS=0.5+(A*B*S+ATAN(A))*G1
42 RETURN
43 1 WRITE(6,7) N
44 STOP
45 7 FORMAT(/10X,'DEGREE OF FREEDOM N=',I5,' IN STUDIS ILLEGAL'/)
46 END