[CONTACT]

[ABOUT]

[POLICY]

[ADVERTISE]

subroutine a,x,r,m,

Found at: ftp.icm.edu.pl:70/packages/netlib/toeplitz/ctslz.f

      subroutine ctslz(a,x,r,m,l,lda)
      integer m,l,lda
      double complex a(lda,l),x(m,l),r(1)
c
c     ctslz solves the double complex linear system
c     a * x = b
c     with the ct - matrix a .
c
c     on entry
c
c        a       double complex(2*m - 1,l)
c                the first row of blocks of the ct - matrix .
c                each block is represented by its first row
c                followed by its first column beginning with the
c                second element. on return a has been destroyed .
c
c        x       double complex(m*l)
c                the right hand side vector b .
c
c        r       double complex(max(2*m - 2,2*l))
c                a work vector .
c
c        m       integer
c                the order of the blocks of the matrix a .
c
c        l       integer
c                the number of blocks in a row or column
c                of the matrix a .
c
c        lda     integer
c                the leading dimension of the array a .
c
c     on return
c
c        x       the solution vector .
c
c     toeplitz package. this version dated 07/23/82 .
c
c     subroutines and functions
c
c        toeplitz package ... salwz,tslz
c        fortran ... dfloat
c
c     internal variables
c
      integer i1,i2
      double precision rl
c
      rl = dfloat(l)
c
c     reduce the ct - matrix to a block-diagonal matrix
c     by the inverse discrete fourier transformation .
c
      call salwz(a,r,r(l+1),2*m - 1,l,lda,-1)
c
c     compute the discrete fourier transformation of
c     the right hand side vector .
c
      call salwz(x,r,r(l+1),m,l,m,1)
c
c     solve the block-diagonal system, blocks of which
c     are t - matrices .
c
      do 10 i2 = 1, l
         call tslz(a(1,i2),x(1,i2),r,m)
   10 continue
c
c     compute the solution of the given system by
c     the inverse discrete fourier transformation .
c
      call salwz(x,r,r(l+1),m,l,m,-1)
c
      do 30 i2 = 1, l
         do 20 i1 = 1, m
            x(i1,i2) = x(i1,i2)/rl
   20    continue
   30 continue
      return
      end

		
.


AD:

NEW PAGES:

[ODDNUGGET]

[GOPHER]