]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HERWIG/jimmy/divon4/ldlsol.F
JIMMY first commit.
[u/mrichter/AliRoot.git] / HERWIG / jimmy / divon4 / ldlsol.F
diff --git a/HERWIG/jimmy/divon4/ldlsol.F b/HERWIG/jimmy/divon4/ldlsol.F
new file mode 100644 (file)
index 0000000..7f4db46
--- /dev/null
@@ -0,0 +1,34 @@
+*CMZ :          23/08/93  13.30.11  by  Jonathan Butterworth
+*-- Author :
+      SUBROUTINE LDLSOL (N,NADIM,CHOL,B,X)
+      INTEGER N, NADIM
+      DOUBLE PRECISION CHOL(NADIM, N)
+      DOUBLE PRECISION B(N), X(N)
+      INTEGER I, IM1, J, JJ, JP1
+      DOUBLE PRECISION SUM
+      SAVE
+      X(1)=B(1)
+      IF(N.EQ.1) GOTO 30
+      DO 20 I=2,N
+      SUM=B(I)
+      IM1=I-1
+      DO 10 J=1,IM1
+      SUM=SUM-CHOL(I,J)*X(J)
+ 10   CONTINUE
+      X(I)=SUM
+ 20   CONTINUE
+ 30   IF(CHOL(N,N).LE.0.0D+0) RETURN
+      X(N)=X(N)/CHOL(N,N)
+      IF(N.EQ.1) RETURN
+      DO 50 JJ=2,N
+      J=N-JJ+1
+      IF(CHOL(J,J).LE.0.0D+0) RETURN
+      SUM=X(J)/CHOL(J,J)
+      JP1=J+1
+      DO 40 I=JP1,N
+      SUM=SUM-CHOL(I,J)*X(I)
+ 40   CONTINUE
+      X(J)=SUM
+ 50   CONTINUE
+      RETURN
+      END