* Bug #14648 fixed - isinf(%inf+%i*%inf)) and isinf(%nan+%i%inf) returned %F
[scilab.git] / scilab / modules / elementary_functions / macros / isinf.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) INRIA
3 // Copyright (C) 2016 - Samuel GOUGEON
4 //
5 // Copyright (C) 2012 - 2016 - Scilab Enterprises
6 //
7 // This file is hereby licensed under the terms of the GNU GPL v2.0,
8 // pursuant to article 5.3.4 of the CeCILL v.2.1.
9 // This file was originally licensed under the terms of the CeCILL v2.1,
10 // and continues to be available under such terms.
11 // For more information, see the COPYING file which you should have received
12 // along with this program.
13
14 function r = isinf(x)
15
16     rhs = argn(2);
17
18     if rhs <> 1 then
19         msg = _("%s: Wrong number of input argument(s): %d expected.\n")
20         error(msprintf(msg, "isinf", 1))
21     end
22
23     if x==[] then
24         r = []
25     else
26         if isreal(x)
27             r = abs(x)==%inf;
28         else
29             // workaround of http://bugzilla.scilab.org/14062
30             r = abs(real(x))==%inf | abs(imag(x))==%inf
31         end
32     end
33
34 endfunction