Operation with null operand crashs Scilab
[scilab.git] / scilab / modules / overloading / macros / %i_lcm.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) INRIA - Serge Steer
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 [q,fact]=%i_lcm(p)
14     //p=lcm(p) computes the lcm of polynomial vector p
15     //[pp,fact]=lcm(p) computes besides the vector fact of factors
16     //such that  p.*fact=pp*ones(p)
17     //!
18
19     k=find(p==0)
20     if k<>[] then q=p(k(1)),fact=0*ones(p),fact(k)=1,return,end
21
22     q=p(1);
23     for k=2:size(p,"*")
24         q=q/gcd([q,p(k)])*p(k);
25     end
26     fact=q./p
27 endfunction