]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.1.1.1 1996/04/01 15:03:27 mclareni | |
6 | * Mathlib gen | |
7 | * | |
8 | * | |
9 | #include "gen/pilot.h" | |
10 | SUBROUTINE LDLSOL (N,NADIM,CHOL,B,X) | |
11 | INTEGER N, NADIM | |
12 | DOUBLE PRECISION CHOL(NADIM, N) | |
13 | DOUBLE PRECISION B(N), X(N) | |
14 | INTEGER I, IM1, J, JJ, JP1 | |
15 | DOUBLE PRECISION SUM | |
16 | X(1)=B(1) | |
17 | IF(N.EQ.1) GOTO 30 | |
18 | DO 20 I=2,N | |
19 | SUM=B(I) | |
20 | IM1=I-1 | |
21 | DO 10 J=1,IM1 | |
22 | SUM=SUM-CHOL(I,J)*X(J) | |
23 | 10 CONTINUE | |
24 | X(I)=SUM | |
25 | 20 CONTINUE | |
26 | 30 IF(CHOL(N,N).LE.0.0D+0) RETURN | |
27 | X(N)=X(N)/CHOL(N,N) | |
28 | IF(N.EQ.1) RETURN | |
29 | DO 50 JJ=2,N | |
30 | J=N-JJ+1 | |
31 | IF(CHOL(J,J).LE.0.0D+0) RETURN | |
32 | SUM=X(J)/CHOL(J,J) | |
33 | JP1=J+1 | |
34 | DO 40 I=JP1,N | |
35 | SUM=SUM-CHOL(I,J)*X(I) | |
36 | 40 CONTINUE | |
37 | X(J)=SUM | |
38 | 50 CONTINUE | |
39 | RETURN | |
40 | END |