error(number): converting occurrences remaining in all .sce .sci files
[scilab.git] / scilab / modules / overloading / macros / %r_a_s.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) INRIA
3 //
4 // Copyright (C) 2012 - 2016 - Scilab Enterprises
5 //
6 // This file is hereby licensed under the terms of the GNU GPL v2.0,
7 // pursuant to article 5.3.4 of the CeCILL v.2.1.
8 // This file was originally licensed under the terms of the CeCILL v2.1,
9 // and continues to be available under such terms.
10 // For more information, see the COPYING file which you should have received
11 // along with this program.
12
13 function f = %r_a_s(f,m)
14     //f = f+m,
15     //f: transfer matrix, m : scalar or scalar matrix
16     //author Serge Steer INRIA
17     //!
18     [num,den] = f(["num","den"])
19     szf = size(den)
20     szm = size(m)
21
22     if isempty(m)
23         f = [];
24         return
25     end
26
27     if and(szf>=0) & and(szm>=0) then
28         if prod(szf)==1 & prod(szm)>1 then
29             den = den(ones(m))
30             szf = szm
31         end
32         if size(szf,"*")>2 then
33             num = num(:);
34             den = den(:);
35             m = m(:)
36         end
37         [num,den] = simp(num+m.*den, den)
38         num = matrix(num,szf)
39         den = matrix(den,szf)
40     else
41         //at leat one matrix is eye*x
42         if size(szf,"*")>2 | size(szm,"*")>2 then
43             msg = _("%s: Inconsistent addition.\n")
44             error(msprintf(msg, "%r_a_s"))
45         end
46         if or(szf<0) & or(szm<0) then
47             [num,den] = simp(num+m.*den,den)
48         elseif or(szf<0) then
49             [num,den] = simp(num+m.*den,den*ones(m))
50         elseif or(szm<0) then
51             [num,den] = simp(num+(m+0)*eye(den).*den,den)
52         end
53     end
54     f = rlist(num, den,f.dt)
55 endfunction