* Bug #9385 fixed - The type checking in trigonometric functions has been added.
[scilab.git] / scilab / modules / elementary_functions / macros / sinc.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) INRIA
3 // Copyright (C) DIGITEO - 2011 - Allan CORNET
4 //
5 // This file must be used under the terms of the CeCILL.
6 // This source file is licensed as described in the file COPYING, which
7 // you should have received as part of this distribution.  The terms
8 // are also available at
9 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10
11 function y=sinc(x,fl)
12     //               [  sin(x(i))/x(i) if x(i)~=0
13     // computes y(i)=[
14     //               [  1 if x(i)~=0
15
16     rhs = argn(2);
17     if rhs < 1 then
18         error(msprintf(gettext("%s: Wrong number of input argument(s): %d expected.\n"),"sinc", 1));
19     end
20     
21     if and(typeof(x)<>["constant", "sparse", "hypermatrix"]) then
22         error(msprintf(gettext("%s: Wrong type for input argument #%d: Real or complex, sparse or full matrix or hypermatrix expected.\n"),"sinc",1));
23     end
24
25     if argn(2) == 2 then // for compatibility
26         warning("obsolete use of sinc, use filt_sinc instead")
27         ffilt = ffilt; //load ffilt and its subfunctions
28         y = filt_sinc(x, fl);
29         return
30     end
31     y = ones(x);
32     kz = find(x <> 0);
33     y(kz) = sin(x(kz))./(x(kz));
34 endfunction