* Deactivate images generation during documentation build since graphics functions...
[scilab.git] / scilab / modules / overloading / macros / %p_cumsum.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2010 -  INRIA - Serge Steer 
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 a=%p_cumsum(a,d,typ)
11   if argn(2)==1 then
12     typ=list()
13     d='*'
14   elseif argn(2)==2 then 
15     if argn(2)==2& or(d==['native','double']) then
16       typ=list(d)
17       d='*'
18     else
19       typ=list()
20     end
21   else
22     typ=list(typ)
23   end
24   if size(d,'*')<>1 then 
25     if type(d)==10 then
26       error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"cumsum",2))
27     else
28       error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"cumsum",2))
29     end
30   end
31  
32   if type(d)==10 then
33     d=find(d==['m','*','r','c'])
34     if d==[] then
35       error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),..
36                      "cumsum",2,"""*"",""r"",""c"",""m"",1:"+string(ndims(a))))
37     end
38     d=d-2
39   end
40   dims=size(a);
41     
42   if d==-1 then //'m'
43     d=find(dims>1,1)
44     if d==[] then d=0,end
45   end
46   if d<0 then
47     error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),..
48                      "cumsum",2,"""*"",""r"",""c"",""m"",1:"+string(ndims(a))))
49   end
50
51   select d
52   case 0 then
53     for k=2:prod(dims)
54       a(k)=a(k-1)+a(k)
55     end
56   case 1 then
57     for k=1:dims(2)
58       a(:,k)=cumsum(a(:,k),typ(:))
59     end
60   case 2 then
61     for k=1:dims(1)
62       a(k,:)=cumsum(a(k,:),typ(:))
63     end
64   else
65     a=a
66   end
67 endfunction