function [W1a,W1b,W2,W3]=eigbasU(m,N,x); n=max(N,-N-1); ind=1:length(x); ind2=ind(abs(1-x.^2)>1e-6); %handle x=1 and x=-1 separately indp=ind((abs(1-x.^2)<=1e-6)&(x>0)); indm=ind((abs(1-x.^2)<=1e-6)&(x<0)); P=legendre(n,x); eta=1/sqrt(4*pi*gamma(n+m+1)/gamma(n-m+1)/(2*n+1)); Ynm=(-1)^m*P(m+1,:); dYnm=zeros(size(Ynm)); pYnm=zeros(size(Ynm)); if(m==0) if(n==0) ; else dYnm=P(2,:); end else dYnm(ind2)=-(-1)^m*(-m*x(ind2).*P(m+1,ind2)./sqrt(1-x(ind2).^2)); if(m