function [v,e]=jacobiw(a)
n=size(a,1)
v=eye(a)
eps=0.000001*max(sum(abs(a),'c'))
kmax=400
for repeat=1:kmax
apqmax=0
for p=1:n
for q=1:n
if p<>q
apqmax=max(abs(a(p,q)),apqmax)
end
end
end
if apqmax<eps
end
for p=1:n-1
for q=p+1:n
x=(a(p,p)+a(q,q))*0.5
y=(a(p,p)-a(q,q))*0.5
z=sqrt(y*y+a(p,q)*a(p,q))
if y<0
end
a(p,p)=x+z
a(q,q)=x-z
c=sqrt((1+y/z)*0.5)
s=a(p,q)*0.5/z/c
a(p,q)=0
a(q,p)=0
for j=1:n
if j<>p & j<>q
apj=a(p,j)
a(p,j)=apj*c+a(q,j)*s
a(q,j)=-apj*s+a(q,j)*c
a(j,p)=a(p,j)
a(j,q)=a(q,j)
end
end
for i=1:n
vip=v(i,p)
v(i,p)=vip*c+v(i,q)*s
v(i,q)=-vip*s+v(i,q)*c
end
end
end
e=diag(a)
end
n=size(a,1)
v=eye(a)
eps=0.000001*max(sum(abs(a),'c'))
kmax=400
for repeat=1:kmax
apqmax=0
for p=1:n
for q=1:n
if p<>q
apqmax=max(abs(a(p,q)),apqmax)
end
end
end
if apqmax<eps
end
for p=1:n-1
for q=p+1:n
x=(a(p,p)+a(q,q))*0.5
y=(a(p,p)-a(q,q))*0.5
z=sqrt(y*y+a(p,q)*a(p,q))
if y<0
end
a(p,p)=x+z
a(q,q)=x-z
c=sqrt((1+y/z)*0.5)
s=a(p,q)*0.5/z/c
a(p,q)=0
a(q,p)=0
for j=1:n
if j<>p & j<>q
apj=a(p,j)
a(p,j)=apj*c+a(q,j)*s
a(q,j)=-apj*s+a(q,j)*c
a(j,p)=a(p,j)
a(j,q)=a(q,j)
end
end
for i=1:n
vip=v(i,p)
v(i,p)=vip*c+v(i,q)*s
v(i,q)=-vip*s+v(i,q)*c
end
end
end
e=diag(a)
end