23 SUBROUTINE zpoly (M, A, LDA, N, V, P, LDP, B)
27 INTEGER m, n, lda, ldp
28 DOUBLE COMPLEX a(lda*m), v(n), p(ldp*m), b(1)
29 INTEGER i, k, ns, nr, nqsr, mm, nrm, nwrk
30 DOUBLE COMPLEX cone /(1.d0,0.d0)/, czero /(0.d0,0.d0)/
34 INTEGER floor, ceiling
39 CALL zscal(mm, czero, p, 1)
49 ns = ceiling(dsqrt(q))
50 nr = floor(q / dfloat(ns))
51 nqsr = n - 1 - ns * nr
52 nrm = (nr + 1) * mm + 1
55 DO 15 i = mm + 1, nwrk
59 CALL
zcopym(m, m, a, lda, b, m)
62 DO 30 i = 1, mm, m + 1
63 b(mm * k + i) = v(ns * k + 1)
68 CALL
zaxpym(m, m, v(i + 1), b, m, p, ldp)
71 CALL zaxpy(mm, v(ns * k + i + 1), b, 1,
76 CALL zaxpy(mm, v(ns * nr + i + 1), b, 1,
80 CALL zcopy(mm, b, 1, b(nrm), 1)
81 CALL zgemm(trans, trans, m, m, m, cone, b(nrm), m, a, lda,
85 CALL zgemm(trans, trans, m, m, m, cone, b(mm + 1), m,
88 IF (nr .GT. 1) CALL zcopy(mm, b, 1, b(nrm), 1)
91 CALL zcopy(mm, b, 1, b(mm + 1), 1)
92 CALL zgemm(trans, trans, m, m, m, cone, b(mm + 1), m,
93 1 b(nrm), m, czero, b, m)
94 CALL zgemm(trans, trans, m, m, m, cone, b(k * mm + 1), m,