%-------------------------------------------------------------------------%
%
% File: getRbf23(type)
%
% Goal: returns the specified RBF
%
% Inputs:  type:  the type of RBF
%
% Outputs: rbf:   the specified RBF
%
%-------------------------------------------------------------------------%
function rbf = getRbf23(type)
switch type
    case 'gauss',
        rbf = @(ep, r) exp(-(ep*r).^2); %C^inf
    case 'imq',
        rbf = @(ep, r) 1./sqrt(1+(ep*r).^2); %C^inf
    case 'genimq',
        rbf = @(ep, r) 1./(1+(ep*r).^2).^2; %C^inf
    case 'iq',
        rbf = @(ep, r) 1./(1+(ep*r).^2); %C^inf
    case 'mat0',
        rbf = @(ep, r) exp(-(ep*r)); %C^0
    case 'mat1',
        rbf = @(ep, r) exp(-(ep*r)).*(1+(ep*r)); %C^2
    case 'mat2',
        rbf = @(ep, r) exp(-(ep*r)).*(3+3*(ep*r)+(ep*r).^2); %C^4
    case 'mat3',
        rbf = @(ep, r) exp(-(ep*r)).*(15+15*(ep*r)+...
            6.*(ep*r).^2+(ep*r).^3); %C^6
    case 'lingenimq'
        rbf = @(ep, r) (2-(ep*r).^2)./(1+(ep*r).^2).^4; %C^inf
    case 'wen30',
        rbf = @(ep, r) max(1-(ep*r),0).^2; %C^0
    case 'wen31',
        rbf = @(ep, r) (max(1-(ep*r),0).^4).*(4*(ep*r)+1); %C^2
    case 'wen32',
        rbf = @(ep, r) (max(1-(ep*r),0).^6).*(35*(ep*r).^2+...
            18*(ep*r)+3); %C^4
    case 'wen33',
        rbf = @(ep, r) (max(1-(ep*r),0).^8).*(32*(ep*r).^3+...
            25*(ep*r).^2+8*ep*r+1); %C^6
    otherwise
        error(['RBF "' type '" not avaiable'])
end