Update of the localization templates
[scilab.git] / scilab / modules / differential_equations / macros / intsplin.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 v = intsplin(x,s)
11 //splin  numerical integration.
12 //v = intsplin(x,s) computes the integral of y with respect to x using
13 //splin interpolation and integration.  
14 //x and y must be vectors of the same dimension
15 //
16 //v = intsplin(s) computes the integral of y assuming unit
17 //spacing between the data points. 
18
19 [lhs,rhs]=argn(0)
20 if rhs<2 then
21   s=x;
22   s=s(:);
23   d=splin((1:size(s,'*'))',s);
24   v=sum((d(1:$-1)-d(2:$))/12 + (s(1:$-1)+s(2:$))/2);
25 else
26   if size(x,'*')<>size(s,'*') then
27     error(msprintf(gettext("%s: Wrong size for input arguments: Same size expected.\n"),"intsplin"));
28   end
29 end
30 x=x(:);s=s(:);
31 d=splin(x,s);
32 h=x(2:$)-x(1:$-1);
33 v=sum((h.*(d(1:$-1)-d(2:$))/12 + (s(1:$-1)+s(2:$))/2).*h);
34 endfunction