* Bug 16145 fixed: intg() integrate() intc() default atol
[scilab.git] / scilab / modules / differential_equations / macros / intl.sci
index 0942d29..103b128 100644 (file)
@@ -10,7 +10,7 @@
 // For more information, see the COPYING file which you should have received
 // along with this program.
 
-function r=intl(a,b,z0,r,f,ea,er)
+function r = intl(a, b, z0, r, f, ea, er)
     //If f is a complex-valued function, intl(a,b,z0,r,f) computes
     //the integral of f(z)dz along the complex plane curve defined by
     //  z0 + r.exp(%i*t)
@@ -18,26 +18,23 @@ function r=intl(a,b,z0,r,f,ea,er)
     //(part of the circle with center z0 and radius r with phase between a and b)
     //!
 
-    //First compile f if necessary:
-
-    rhs=argn(2)
-    if rhs<7 then
-        er=%eps;
+    if ~isdef("ea","l") | ea==[] then
+        ea = %eps;  // could be 1d-13 as with intg, integrate and intc
     end
-    if rhs<6 then
-        ea=1.d-12;
+    if ~isdef("er","l") | er==[] then
+        er = 1d-12;  // could be 1d-8 as with intg, integrate and intc
     end
 
     //Define two functions for the real part and
     //imaginary part of f(g(t))*g'(t) where g(t) is a
     //parametrization of the circle.
-    deff("y=real1(t)",[
-    "z=r*exp(%i*((1-t)*a+t*b))"
-    "y=real(f(z+z0)*%i*(b-a)*z)"] )
+    deff("y = real1(t)",[
+    "z = r*exp(%i*((1-t)*a+t*b))"
+    "y = real(f(z+z0)*%i*(b-a)*z)"] )
 
-    deff("y=imag1(t)",[
-    "z=r*exp(%i*((1-t)*a+t*b))"
-    "y=imag(f(z+z0)*%i*(b-a)*z)"] )
+    deff("y = imag1(t)",[
+    "z = r*exp(%i*((1-t)*a+t*b))"
+    "y = imag(f(z+z0)*%i*(b-a)*z)"] )
 
-    r=intg(0,1,real1,ea,er)+%i*intg(0,1,imag1,ea,er)
+    r = intg(0,1,real1, ea, er) + %i*intg(0, 1, imag1, ea, er)
 endfunction