c764fb7135eacdaeac3de9bad950fbf7bdadb1bc
[scilab.git] / scilab / modules / overloading / macros / %r_i_r.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) INRIA - Serge STEER
3 // Copyright (C) 2012 - 2016 - Scilab Enterprises
4 // Copyright (C) 2018 - Samuel GOUGEON
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 s1 = %r_i_r(varargin)
14     s2 = varargin($)
15     s1 = varargin($-1)
16     // %r_i_r(i,j,s1,s2) insertion  s2(i,j,..) = s1
17
18     sel = 1:$-2
19     if type(varargin(2))==1 & varargin(2)==0 then
20         sel = 1     // linearized indices
21     end
22     num = s2.num;
23     sz2 = size(num)
24     ind = list();
25     for i = sz2, ind($+1) = 1:i, end
26     num(varargin(sel)) = s1.num
27     den = s2.den
28     den(varargin(sel)) = s1.den
29     s1 = rlist(num, den, s2.dt)
30 endfunction