error(number): converting occurrences remaining in all .sce .sci files
[scilab.git] / scilab / modules / overloading / macros / %p_e.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 = %p_e(varargin)
14     //A(i,j,k,..)
15
16     rhs=size(varargin)
17     M=varargin(rhs)
18
19     nind=rhs-1
20     dims=[]
21     //check if all indexes of order greater than 2 contains only ones
22     for k=3:nind
23         ind=varargin(k)
24         if type(ind)==2|type(ind)==129 then ind=horner(ind,1),end
25         if type(ind)==4 then ind=find(ind),end
26         if or(ind<>1) then
27             error(msprintf(_("%s: Invalid index.\n"), "%p_e"))
28         end
29         n=size(ind,"*")
30         dims=[dims,n]
31     end
32     f=M(varargin(1:min(2,rhs-1)))
33     k=find(dims>1)
34     if k<>[] then
35         dims(k($)+1:$)=[]
36         N=prod(dims)
37         f=matrix(ones(N,1).*.f(:), [size(f) dims])
38     end
39 endfunction