function [y,n]=struve(a,z)
n=0; y1=0; d=1;
while abs(d)>.5e-15
  n=n+5; y0=y1;
  k=0:n;
  y1=sum(((-1).^k).*(z/2).^(2*k)./(gamma(k+3/2).*gamma(k+a+3/2)));
  d=(y1-y0)/y1;
end
y=((z/2)^(a+1))*y1;
