]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MINICERN/mathlib/gen/d/sgz.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / d / sgz.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1996/04/01 15:02:22 mclareni
6* Mathlib gen
7*
8*
9#include "gen/pilot.h"
10 SUBROUTINE SGZ (M,S)
11C-----SUBROUTINE SGZ SETS UP S(OBJECTIVE FUNCTION),G(GRADIENT OF S) AND
12C-----Z(APPROXIMATE COVARIANCE MATRIX)
13#include "d510si.inc"
14#include "d510ui.inc"
15 K=NED(1)
16 K2=1
17 DO 12 L1=1,K
18 K1=K2
19 NX=NED(2)-2
20 IF (INDFLG(3)) 1,2,1
21 1 NX=NED(2)
22 K1=K1-2
23 2 CONTINUE
24 DO 3 I=1,NX
25 KI=K1+1+I
26 X(I)=EXDA(KI)
27 3 CONTINUE
28 CALL ARITHM (Y)
29 IF (INDFLG(3)) 4,6,4
30 4 IF (Y) 13,13,5
31C-----MAXIMUM LIKLEHOOD
32 5 S=S-LOG(Y)
33 Y=-Y
34 SIG=Y
35 GO TO 7
36C-----CHI SQUARED
37 6 SIG=EXDA(K2+1)
38 Y=Y-EXDA(K1)
39 S=S+((Y/SIG)**2)/2.
40 7 CONTINUE
41 N=0
42 DO 9 J=1,M
43 IF (PL0(J)) 9,9,8
44 8 N=N+1
45 DF(N)=DF(J)/SIG
46 G(J)=G(J)+DF(N)*(Y/SIG)
47 9 CONTINUE
48 L=1
49 IF (N.LT.1) GO TO 11
50 DO 10 I=1,N
51 DO 10 J=1,I
52 Z(L)=Z(L)+DF(I)*DF(J)
53 L=L+1
54 10 CONTINUE
55 11 K2=K2+NED(2)
56 12 CONTINUE
57 RETURN
58C----- -VE OR ZERO Y IN MAXIMUM LIKLEHOOD
59 13 INDFLG(1)=1
60 S=1.E10
61 RETURN
62 END