bug 2374 fixed + other missing related overloading functions added
[scilab.git] / scilab / modules / overloading / macros / %r_s_hm.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) INRIA
3 // 
4 // This file must be used under the terms of the CeCILL.
5 // This source file is licensed as described in the file COPYING, which
6 // you should have received as part of this distribution.  The terms
7 // are also available at    
8 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
9
10 function f=%r_s_hm(f,m)
11 //f = f-m, 
12 //f: transfer matrix, m : hypermatrix
13 //author Serge Steer INRIA
14 //!
15   [num,den]=f(['num','den'])
16   szf=size(den)
17   szm=size(m)
18
19   if and(szf>=0)&and(szm>=0) then
20     num=num(:);den=den(:);m=m(:)
21     if prod(szf)==1&prod(szm)>1 then
22       den=den(ones(m))
23     end
24     [num,den]=simp(num-m.*den,den)
25     num=matrix(num,szf)
26     den=matrix(den,szf)
27     f=rlist(num,den,f.dt)
28   else
29     error(9)
30   end
31 endfunction