e3b6a239db14003a30da239fed9e0b0fed74a97d
[scilab.git] / scilab / modules / special_functions / macros / %s_gamma.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2018 - Samuel GOUGEON
3 //
4 // This file is hereby licensed under the terms of the GNU GPL v2.0,
5 // pursuant to article 5.3.4 of the CeCILL v.2.1.
6 // This file was originally licensed under the terms of the CeCILL v2.1,
7 // and continues to be available under such terms.
8 // For more information, see the COPYING file which you should have received
9 // along with this program.
10
11 function y = %s_gamma(x)
12     // call for complex numbers or/and for hypermatrix of reals
13     s = size(x);
14     x = x(:);
15     if isreal(x, 0)
16         y = gamma(real(x));
17     else
18         if isdef("%s_gamma_user") & type(%s_gamma_user)==13
19             y = %s_gamma_user(x);
20         else
21             msg = _("%s: Function not defined for the given argument type.\n  Check arguments or define function %s for overloading.\n")
22             error(msprintf(msg, "%s_gamma", "%s_gamma_user()"))
23         end
24     end
25     y = matrix(y, s);
26 endfunction