Rev 48160 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
cc dposl solves the double precision symmetric positive definitec system a * x = bc using the factors computed by dpoco or dpofa.cc on entrycc a double precision(lda, n)c the output from dpoco or dpofa.cc lda integerc the leading dimension of the array a .cc n integerc the order of the matrix a .cc b double precision(n)c the right hand side vector.cc on returncc b the solution vector x .cc error conditioncc a division by zero will occur if the input factor containsc a zero on the diagonal. technically this indicatesc singularity but it is usually caused by improper subroutinec arguments. it will not occur if the subroutines are calledc correctly and info .eq. 0 .cc to compute inverse(a) * c where c is a matrixc with p columnsc call dpoco(a,lda,n,rcond,z,info)c if (rcond is too small .or. info .ne. 0) go to ...c do 10 j = 1, pc call dposl(a,lda,n,c(1,j))c 10 continuecc linpack. this version dated 08/14/78 .c cleve moler, university of new mexico, argonne national lab.cc subroutines and functionscc blas daxpy,ddotcsubroutine dposl(a,lda,n,b)integer lda,ndouble precision a(lda,*),b(*)cc internal variablescdouble precision ddot,tinteger k,kbcc solve trans(r)*y = bcdo 10 k = 1, nt = ddot(k-1,a(1,k),1,b(1),1)b(k) = (b(k) - t)/a(k,k)10 continuecc solve r*x = ycdo 20 kb = 1, nk = n + 1 - kbb(k) = b(k)/a(k,k)t = -b(k)call daxpy(k-1,t,a(1,k),1,b(1),1)20 continuereturnend