Code covered by the BSD License  

Highlights from
Mathieu Functions Toolbox v.1.0

from Mathieu Functions Toolbox v.1.0 by E. Cojocaru
elliptical cylinder coordinates, special functions, angular and radial Mathieu functions

gpm(KF,q,mv,nmax)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%   JOINING FACTOR    
%   y = gpm(KF,q,mv,nmax)  [p,m = e,o (even,odd)]
%
%   INPUTS:     -q= elliptical parameter, q > 0
%               -mv= matrix of expansion coefficients
%               -nmax= maximum order
%               -KF= function code:  KF=1 even-even
%                                    KF=2 even-odd
%                                    KF=3 odd-even
%                                    KF=4 odd-odd                                                        
%   OUTPUTS:    -y= vector of joining factors for all 'nmax' orders                   
%   'mv' is determined beforehand with function 'eig_Spm'
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%    E. Cojocaru, revised November 2008
%    Observations, suggestions, and recommendations are welcome at e-mail:
%    ecojocaru@theory.nipne.ro
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%   gpm FUNCTION CALL
function y = gpm(KF,q,mv,nmax)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%---------------even-even---KF == 1----------------------------------------

if KF == 1
    
    ik=0:24;  vt=2*ik;
%   Compute Spm at v=pi/2    
    Spm_pi2=Spm(1,pi/2,mv,nmax);                   
   
    y=[];
    
    for k=1:nmax
    
    Apm=mv(:,k);   in=vt(k);
    A0=Apm(1);     
    Spmk=Spm_pi2(k);                   
    r=fix(in/2);
    yc=((-1)^r)*(1/pi)*Spmk/A0; 
    y=[y yc];
    end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%---------------even-odd---KF == 2-----------------------------------------

elseif KF == 2  
    
    ik=0:24;  vt=2*ik+1;
%   Compute the derivative of Spm at v=pi/2
    dSpm_pi2=dSpm(2,pi/2,mv,nmax);                   
   
    y=[];
    
    for k=1:nmax
    
    Apm=mv(:,k);   in=vt(k);
    A1=Apm(1);     
    dSpmk=dSpm_pi2(k); 
    r=fix((in-1)/2);
    yc=-((-1)^r)*(1/(pi*sqrt(q)))*dSpmk/A1;     
    y=[y yc];
    end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%----------------odd-even--KF == 3-----------------------------------------

elseif KF == 3  
    
    ik=1:25;  vt=2*ik;
%   Compute the derivative of Spm at v=pi/2 
    dSpm_pi2=dSpm(3,pi/2,mv,nmax);                   
   
    y=[];
    
    for k=1:nmax
    
    Apm=mv(:,k);   in=vt(k);
    A2=Apm(1);     
    dSpmk=dSpm_pi2(k);
    r=fix(in/2);
    yc=((-1)^r)*(1/(q*pi))*dSpmk/A2;     
    y=[y yc];
    end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%----------------odd-odd--KF == 4------------------------------------------

elseif KF == 4  
    
    ik=0:24;  vt=2*ik+1;
%   Compute Spm at v=pi/2  
    Spm_pi2=Spm(4,pi/2,mv,nmax); 
    
    y=[];
    
    for k=1:nmax
    
    Apm=mv(:,k);   in=vt(k);
    A1=Apm(1);     
    Spmk=Spm_pi2(k);
    r=fix((in-1)/2);
    yc=((-1)^r)*(1/(sqrt(q)*pi))*Spmk/A1;   
    y=[y yc];
    end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
end

Contact us at files@mathworks.com