1
subroutine wmpcle(pm1r,pm1i,d1,m,n,d2,epsr,epsa)
3
c Dans une matrice polynomiale pm1 cette routine met (pour
4
c chaque polynome) a zero les coefficients de polynomes
5
c de module inferieur a epsa ou epsr*(norme un du vecteur
6
c des coefficients du polynome)
10
c subroutine wmpclea(pm1r,pm1i,d1,m,n,d2,epsr,epsa)
11
c double precision pm1r(*),pm1i(*)
14
c pm1r : tableau reel contenant les coefficients des polynomes,
16
c le coefficient de degre k du polynome pm1(i,j) est range
17
c dans pm1( d1(i + (j-1)*ld1 + k) )
18
c pm1 doit etre de taille au moins d1(ld1*n+1)-d1(1)
19
c pm1i : tableau reel contenant les coefficients des polynomes,
21
c le coefficient de degre k du polynome pm1(i,j) est range
22
c dans pm1( d1(i + (j-1)*ld1 + k) )
23
c pm1 doit etre de taille au moins d1(ld1*n+1)-d1(1)
24
c d1 : tableau entier de taille ld1*n+1, si k=i+(j-1)*ld1 alors
25
c d1(k)) contient l'adresse dans pm1 du coeff de degre 0
26
c du polynome pm1(i,j). Le degre du polynome pm1(i,j) vaut:
28
c m : nombre de ligne de la matrice pm1
29
c n : nombre de colonne de matrice pm1
35
double precision pm1r(*),pm1i(*),norm,normr,normi,epsr,epsa,eps
36
integer d1(*),d2(*),m,n
47
normr=normr+abs(pm1r(l))
48
normi=normi+abs(pm1i(l))
51
eps=max(epsa,epsr*norm)
53
if (abs(pm1r(l)).le.eps) then
56
if (abs(pm1i(l)).le.eps) then