resolve a conflict
Yann Collette [Tue, 28 Jul 2009 11:37:56 +0000 (13:37 +0200)]
19 files changed:
scilab/modules/differential_equations/help/en_US/bvode.xml
scilab/modules/differential_equations/help/en_US/dae.xml
scilab/modules/differential_equations/help/en_US/daeoptions.xml
scilab/modules/differential_equations/help/en_US/dasrt.xml
scilab/modules/differential_equations/help/en_US/dassl.xml
scilab/modules/differential_equations/help/en_US/feval.xml
scilab/modules/differential_equations/help/en_US/impl.xml
scilab/modules/differential_equations/help/en_US/int2d.xml
scilab/modules/differential_equations/help/en_US/int3d.xml
scilab/modules/differential_equations/help/en_US/intg.xml
scilab/modules/differential_equations/help/en_US/ode.xml
scilab/modules/differential_equations/help/en_US/ode_discrete.xml
scilab/modules/differential_equations/help/en_US/ode_root.xml
scilab/modules/differential_equations/help/en_US/odedc.xml
scilab/modules/differential_equations/help/en_US/odeoptions.xml
scilab/modules/differential_equations/help/fr_FR/feval.xml
scilab/modules/differential_equations/help/fr_FR/intg.xml
scilab/modules/differential_equations/help/fr_FR/ode.xml
scilab/modules/differential_equations/help/pt_BR/feval.xml

index 8318253..2588756 100644 (file)
@@ -989,9 +989,27 @@ zu=bvodeS(xpoints,m,N,x_low,x_up,fsub,gsub,zeta, <optional_args>)
 
              
 
+<<<<<<< HEAD:scilab/modules/differential_equations/help/en_US/bvode.xml
             <listitem><para>And in Scilab</para><programlisting>  function g=gsub(i,zu,parameters) </programlisting>
             <para>Note that in contrast to <literal>f</literal> in <literal>fsub</literal>, here only one value per call is returned in <literal>g</literal>.</para>
             </listitem>
+=======
+            <listitem>And in Scilab <programlisting>  function g=gsub(i,zu,parameters) </programlisting></listitem>
+
+             Note that in contrast to 
+
+            <literal>f</literal>
+
+             in 
+
+            <literal>fsub</literal>
+
+             , here only one value per call is returned in 
+
+            <literal>g</literal>
+
+             . 
+>>>>>>> 678ea5b... correct bug 4184 for differential_equations - uniformisation of the examples presentation:scilab/modules/differential_equations/help/en_US/bvode.xml
           </itemizedlist>
         </listitem>
       </varlistentry>
@@ -2864,4 +2882,4 @@ disp(norm(yex(x)-z(1,:)),'norm(yex(x)-z(1,:))= ')
       </listitem>
     </orderedlist>
   </refsection>
-</refentry>
+</refentry>
\ No newline at end of file
index ab570b0..e119241 100644 (file)
@@ -27,6 +27,7 @@
     <refname>dae</refname>
 
     <refpurpose>Differential algebraic equations solver</refpurpose>
+
   </refnamediv>
 
   <refsynopsisdiv>
                 <para>This form of external is used to pass parameters to the
                 function. It must be as follows:</para>
 
-                <programlisting> 
-list(res,p1,p2,...)
- </programlisting>
+                <programlisting>list(res,p1,p2,...)</programlisting>
 
                 <para>where the calling sequence of the function
                 <literal>res</literal> is now</para>
 
-                <programlisting> 
-r=res(t,y,ydot,p1,p2,...)
- </programlisting>
+                <programlisting>r=res(t,y,ydot,p1,p2,...)</programlisting>
 
                 <para><literal>res</literal> still returns the residual value
                 as a function of <literal>(t,x,xdot,x1,x2,...)</literal>, and
@@ -249,16 +246,12 @@ r=res(t,y,ydot,p1,p2,...)
                 <para>This form of external is used to pass parameters to the
                 function. It must be as follows:</para>
 
-                <programlisting> 
-list(jac,p1,p2,...)               
- </programlisting>
+                <programlisting>list(jac,p1,p2,...)               </programlisting>
 
                 <para>where the calling sequence of the function
                 <literal>jac</literal> is now</para>
 
-                <programlisting> 
-r=jac(t,x,xdot,p1,p2,...)      
- </programlisting>
+                <programlisting>r=jac(t,x,xdot,p1,p2,...)      </programlisting>
 
                 <para><literal>jac</literal> still returns
                 <literal>dg/dx+cj*dg/dxdot</literal> as a function of
@@ -312,8 +305,8 @@ r=jac(t,x,xdot,p1,p2,...)
         <listitem>
           <para>an <link linkend="external" role=""
           version="">external</link>. Computes the value of the column vector
-          <literal>surface(t,x)</literal> with <literal>ng</literal>
-          components. Each component defines a surface.</para>
+          <literal>surface(t,x)</literal> with <literal>ng</literal> components.
+          Each component defines a surface.</para>
 
           <variablelist>
             <varlistentry>
@@ -333,16 +326,12 @@ r=jac(t,x,xdot,p1,p2,...)
                 <para>This form of external is used to pass parameters to the
                 function. It must be as follows:</para>
 
-                <programlisting> 
-list(surface,p1,p2,...)
- </programlisting>
+                <programlisting>list(surface,p1,p2,...)</programlisting>
 
                 <para>where the calling sequence of the function
                 <literal>surface</literal> is now</para>
 
-                <programlisting> 
-r=surface(t,x,p1,p2,...)
- </programlisting>
+                <programlisting>r=surface(t,x,p1,p2,...)</programlisting>
               </listitem>
             </varlistentry>
 
@@ -413,8 +402,8 @@ r=surface(t,x,p1,p2,...)
 
         <listitem>
           <para>real matrix . If <literal><link
-          linkend="daeoptions">%DAEOPTIONS</link>(2)=1</literal>, each column
-          is the vector <literal>[t;x(t);xdot(t)]</literal> where
+          linkend="daeoptions">%DAEOPTIONS</link>(2)=1</literal>, each column is the
+          vector <literal>[t;x(t);xdot(t)]</literal> where
           <literal>t</literal> is time index for which the solution had been
           computed. Else <literal>y</literal> is the vector
           <literal>[x(t);xdot(t)]</literal>.</para>
@@ -430,9 +419,9 @@ r=surface(t,x,p1,p2,...)
     <link linkend="dassl">dassl</link> and <link linkend="dasrt">dasrt</link>
     function designed for implicit differential equations integration.</para>
 
-    <programlisting> 
-g(t,x,xdot)=0
-x(t0)=x0  and   xdot(t0)=xdot0
+    <programlisting>
+    g(t,x,xdot)=0
+    x(t0)=x0  and   xdot(t0)=xdot0
  </programlisting>
 
     <para>If <literal>xdot0</literal> is not given in the<literal>
@@ -452,19 +441,18 @@ x(t0)=x0  and   xdot(t0)=xdot0
   <refsection>
     <title>Examples</title>
 
-    <programlisting role="example"> 
-//Example with Scilab  code
-function [r,ires]=chemres(t,y,yd)
-    r(1) = -0.04*y(1) + 1d4*y(2)*y(3) - yd(1);
-    r(2) =  0.04*y(1) - 1d4*y(2)*y(3) - 3d7*y(2)*y(2) - yd(2);
-    r(3) =       y(1) +     y(2)      + y(3)-1;
-    ires =  0;
-endfunction
-function pd=chemjac(x,y,yd,cj)
-    pd=[-0.04-cj , 1d4*y(3)               , 1d4*y(2);
-         0.04    ,-1d4*y(3)-2*3d7*y(2)-cj ,-1d4*y(2);
-         1       , 1                      , 1       ]
-endfunction
+    <programlisting role="example">//Example with Scilab  code
+ function [r,ires]=chemres(t,y,yd)
+     r(1) = -0.04*y(1) + 1d4*y(2)*y(3) - yd(1);
+     r(2) =  0.04*y(1) - 1d4*y(2)*y(3) - 3d7*y(2)*y(2) - yd(2);
+     r(3) =       y(1) +     y(2)      + y(3)-1;
+     ires =  0;
+ endfunction
+ function pd=chemjac(x,y,yd,cj)
+     pd=[-0.04-cj , 1d4*y(3)               , 1d4*y(2);
+          0.04    ,-1d4*y(3)-2*3d7*y(2)-cj ,-1d4*y(2);
+          1       , 1                      , 1       ]
+ endfunction
 
 x0=[1; 0; 0];
 xd0=[-0.04; 0.04; 0];
@@ -512,6 +500,9 @@ t01=nn(1);[pp,qq]=size(yy);y01=yy(2:3,qq);y0d1=yy(3:4,qq);
 [yy,nn,hotd]=dae("root",[y01,y0d1],t01,300,atol,rtol,'res22','jac22',ng,'gr22',hotd);
 plot(yy(1,1),yy(2,1),'r+')
 xstring(yy(1,1)+0.1,yy(2,1),string(nn(1)))
+
+
+
   </programlisting>
   </refsection>
 
index 1f1e5af..fb3b190 100644 (file)
     <para>The variable <literal>%DAEOPTIONS</literal> is a <link
     linkend="list">list</link> with the following elements:</para>
 
-    <programlisting> 
-list(tstop,imode,band,maxstep,stepin,nonneg,isest)
- </programlisting>
+    <programlisting>list(tstop,imode,band,maxstep,stepin,nonneg,isest)</programlisting>
 
     <para>The default value is:</para>
 
-    <programlisting> 
-list([],0,[],[],[],0,0)
- </programlisting>
+    <programlisting>list([],0,[],[],[],0,0)</programlisting>
 
     <para>The meaning of the elements is described below.</para>
 
@@ -150,4 +146,4 @@ list([],0,[],[],[],0,0)
       <member><link linkend="dae">dae</link></member>
     </simplelist>
   </refsection>
-</refentry>
+</refentry>
\ No newline at end of file
index 0debc29..6bdcb6c 100644 (file)
               <para>This form allows to pass parameters other than t,y,ydot to
               the function. It must be as follows:</para>
 
-              <programlisting> 
-list(res,x1,x2,...)
- </programlisting>
+              <programlisting>list(res,x1,x2,...)            </programlisting>
 
               <para>where the calling sequence of the function
               <literal>res</literal> is now</para>
 
-              <programlisting> 
-r=res(t,y,ydot,x1,x2,...)
- </programlisting>
+              <programlisting>r=res(t,y,ydot,x1,x2,...)             </programlisting>
 
               <para><literal>res</literal> still returns
               <literal>r=g(t,y,ydot)</literal> as a function of
@@ -167,14 +163,14 @@ r=res(t,y,ydot,x1,x2,...)
 
               <para>In C The calling sequence must be:</para>
 
-              <programlisting> 
+              <programlisting>
 void res(double *t, double y[], double yd[], double r[],
-         int *ires, double rpar[], int ipar[]) 
+                                          int *ires, double rpar[], int ipar[]) 
      </programlisting>
 
               <para>In Fortran it must be:</para>
 
-              <programlisting> 
+              <programlisting>
 subroutine res(t,y,yd,r,ires,rpar,ipar)
 double precision t, y(*),yd(*),r(*),rpar(*)
 integer ires,ipar(*)
@@ -211,16 +207,12 @@ integer ires,ipar(*)
 
               <para>it must be as follows</para>
 
-              <programlisting>
-list(jac,x1,x2,...)
- </programlisting>
+              <programlisting>list(jac,x1,x2,...)              </programlisting>
 
               <para>where the calling sequence of the function
               <literal>jac</literal> is now</para>
 
-              <programlisting> 
-r=jac(t,y,ydot,cj,x1,x2,...)
- </programlisting>
+              <programlisting>r=jac(t,y,ydot,cj,x1,x2,...)    </programlisting>
 
               <para><literal>jac</literal> still returns
               <literal>dg/dy+cj*dg/dydot</literal> as a function of
@@ -235,18 +227,15 @@ r=jac(t,y,ydot,cj,x1,x2,...)
 
               <para>In C The calling sequence must be:</para>
 
-              <programlisting> 
-void jac(double *t, double y[], double yd[], double pd[],
-         double *cj, double rpar[], int ipar[])
- </programlisting>
+              <programlisting>  void jac(double *t, double y[], double yd[], double
+              pd[], double *cj, double rpar[], int ipar[])
+</programlisting>
 
               <para>In Fortran it must be:</para>
 
-              <programlisting> 
-subroutine jac(t,y,yd,pd,cj,rpar,ipar)
-double precision t, y(*),yd(*),pd(*),cj,rpar(*)
-integer ipar(*)
- </programlisting>
+              <programlisting>  subroutine jac(t,y,yd,pd,cj,rpar,ipar)
+  double precision t, y(*),yd(*),pd(*),cj,rpar(*)
+  integer ipar(*)</programlisting>
             </listitem>
           </itemizedlist>
         </listitem>
@@ -274,16 +263,12 @@ integer ipar(*)
 
               <para>it must be as follows</para>
 
-              <programlisting> 
-list(surf,x1,x2,...)
- </programlisting>
+              <programlisting>list(surf,x1,x2,...)              </programlisting>
 
               <para>where the calling sequence of the function
               <literal>surf</literal> is now</para>
 
-              <programlisting> 
-r=surf(t,y,x1,x2,...)
- </programlisting>
+              <programlisting>r=surf(t,y,x1,x2,...)             </programlisting>
             </listitem>
 
             <listitem>
@@ -294,17 +279,13 @@ r=surf(t,y,x1,x2,...)
 
               <para>In C The calling sequence must be:</para>
 
-              <programlisting> 
-void surf(int *ny, double *t, double y[], int *ng, double gout[])
- </programlisting>
+              <programlisting>  void surf(int *ny, double *t, double y[], int *ng, double gout[])</programlisting>
 
               <para>In Fortran it must be:</para>
 
-              <programlisting> 
-subroutine surf(ny,t,y,ng,gout)
-double precision t, y(*),gout(*)
-integer ny,ng
- </programlisting>
+              <programlisting>  subroutine surf(ny,t,y,ng,gout)
+  double precision t, y(*),gout(*)
+  integer ny,ng</programlisting>
             </listitem>
           </itemizedlist>
         </listitem>
@@ -344,7 +325,7 @@ integer ny,ng
               <term>info(3)</term>
 
               <listitem>
-                <para><literal>2</literal> components vector which give the
+                <para>: <literal>2</literal> components vector which give the
                 definition <literal>[ml,mu]</literal> of band matrix computed
                 by <literal>jac</literal>; <literal>r(i - j + ml + mu + 1,j) =
                 "dg(i)/dy(j)+cj*dg(i)/dydot(j)"</literal>. If
@@ -420,9 +401,11 @@ integer ny,ng
 
     <para>Solution of the implicit differential equation</para>
 
-    <programlisting> 
-g(t,y,ydot)=0
-y(t0)=y0  and   ydot(t0)=ydot0
+    <programlisting>
+
+    g(t,y,ydot)=0
+    y(t0)=y0  and   ydot(t0)=ydot0
+   
     </programlisting>
 
     <para>Returns the surface crossing instants and the number of the surface
@@ -434,7 +417,8 @@ y(t0)=y0  and   ydot(t0)=ydot0
   <refsection>
     <title>Examples</title>
 
-    <programlisting role="example"> 
+    <programlisting role="example">
+
 //dy/dt = ((2*log(y)+8)/t -5)*y,  y(1) = 1,  1&lt;=t&lt;=6
 //g1 = ((2*log(y)+8)/t - 5)*y 
 //g2 = log(y) - 2.2491 
@@ -446,7 +430,8 @@ deff('[rts]=gr1(t,y)','rts=[((2*log(y)+8)/t-5)*y;log(y)-2.2491]')
 
 [yy,nn]=dasrt([y0,y0d],t0,t,atol,rtol,res1,ng,gr1);
 //(Should return nn=[2.4698972 2])
-   </programlisting>
+  </programlisting>
   </refsection>
 
   <refsection>
@@ -466,4 +451,4 @@ deff('[rts]=gr1(t,y)','rts=[((2*log(y)+8)/t-5)*y;log(y)-2.2491]')
       <member><link linkend="external">external</link></member>
     </simplelist>
   </refsection>
-</refentry>
+</refentry>
\ No newline at end of file
index aaa1c9e..e76f6f9 100644 (file)
               <para>This form allows to pass parameters other than t,y,ydot to
               the function. It must be as follows:</para>
 
-              <programlisting> 
-list(res,x1,x2,...)
- </programlisting>
+              <programlisting>list(res,x1,x2,...)            </programlisting>
 
               <para>where the calling sequence of the function
               <literal>res</literal> is now</para>
 
-              <programlisting> 
-r=res(t,y,ydot,x1,x2,...)
- </programlisting>
+              <programlisting>r=res(t,y,ydot,x1,x2,...)             </programlisting>
 
               <para><literal>res</literal> still returns
               <literal>r=g(t,y,ydot)</literal> as a function of
@@ -153,18 +149,14 @@ r=res(t,y,ydot,x1,x2,...)
 
               <para>In C The calling sequence must be:</para>
 
-              <programlisting> 
-void res(double *t, double y[], double yd[], double r[],
-         int *ires, double rpar[], int ipar[])
- </programlisting>
+              <programlisting>void res(double *t, double y[], double yd[], double r[],
+                                          int *ires, double rpar[], int ipar[])     </programlisting>
 
               <para>In Fortran it must be:</para>
 
-              <programlisting> 
-subroutine res(t,y,yd,r,ires,rpar,ipar)
+              <programlisting>subroutine res(t,y,yd,r,ires,rpar,ipar)
 double precision t, y(*),yd(*),r(*),rpar(*)
-integer ires,ipar(*)  
- </programlisting>
+integer ires,ipar(*)  </programlisting>
 
               <para>The rpar and ipar arrays must be present but cannot be
               used.</para>
@@ -197,16 +189,12 @@ integer ires,ipar(*)
 
               <para>it must be as follows</para>
 
-              <programlisting> 
-list(jac,x1,x2,...)
- </programlisting>
+              <programlisting>list(jac,x1,x2,...)              </programlisting>
 
               <para>where the calling sequence of the function
               <literal>jac</literal> is now</para>
 
-              <programlisting> 
-r=jac(t,y,ydot,cj,x1,x2,...)
- </programlisting>
+              <programlisting>r=jac(t,y,ydot,cj,x1,x2,...)    </programlisting>
 
               <para><literal>jac</literal> still returns
               <literal>dg/dy+cj*dg/dydot</literal> as a function of
@@ -221,17 +209,15 @@ r=jac(t,y,ydot,cj,x1,x2,...)
 
               <para>In C The calling sequence must be:</para>
 
-              <programlisting>void jac(double *t, double y[], double yd[], double pd[],
-         double *cj, double rpar[], int ipar[])
- </programlisting>
+              <programlisting>  void jac(double *t, double y[], double yd[], double
+              pd[], double *cj, double rpar[], int ipar[])
+</programlisting>
 
               <para>In Fortran it must be:</para>
 
-              <programlisting> 
-subroutine jac(t,y,yd,pd,cj,rpar,ipar)
-double precision t, y(*),yd(*),pd(*),cj,rpar(*)
-integer ipar(*)
- </programlisting>
+              <programlisting>  subroutine jac(t,y,yd,pd,cj,rpar,ipar)
+  double precision t, y(*),yd(*),pd(*),cj,rpar(*)
+  integer ipar(*)</programlisting>
             </listitem>
           </itemizedlist>
         </listitem>
@@ -271,7 +257,7 @@ integer ipar(*)
               <term>info(3)</term>
 
               <listitem>
-                <para><literal>2</literal> components vector which give the
+                <para>: <literal>2</literal> components vector which give the
                 definition <literal>[ml,mu]</literal> of band matrix computed
                 by <literal>jac</literal>; <literal>r(i - j + ml + mu + 1,j) =
                 "dg(i)/dy(j)+cj*dg(i)/dydot(j)"</literal>. If
@@ -347,33 +333,30 @@ integer ipar(*)
     <para>The dassl function integrate the algebro-differencial equation and
     returns the evolution of<literal> y </literal>a given time points</para>
 
-    <programlisting>
-g(t,y,ydot)=0
-y(t0)=y0  and   ydot(t0)=ydot0
- </programlisting>
+    <programlisting>    g(t,y,ydot)=0
+    y(t0)=y0  and   ydot(t0)=ydot0</programlisting>
   </refsection>
 
   <refsection>
     <title>Examples</title>
 
-    <programlisting role="example"> 
-function [r,ires]=chemres(t,y,yd)
-   r=[-0.04*y(1)+1d4*y(2)*y(3)-yd(1)
-       0.04*y(1)-1d4*y(2)*y(3)-3d7*y(2)*y(2)-yd(2)
-       y(1)+y(2)+y(3)-1];
-   ires=0
-endfunction
-
-function pd=chemjac(x,y,yd,cj)
-    pd=[-0.04-cj , 1d4*y(3)               , 1d4*y(2);
-         0.04    ,-1d4*y(3)-2*3d7*y(2)-cj ,-1d4*y(2);
-         1       , 1                      , 1       ]
-endfunction
+    <programlisting role="example">  function [r,ires]=chemres(t,y,yd)
+     r=[-0.04*y(1)+1d4*y(2)*y(3)-yd(1)
+         0.04*y(1)-1d4*y(2)*y(3)-3d7*y(2)*y(2)-yd(2)
+         y(1)+y(2)+y(3)-1];
+     ires=0
+  endfunction
+  function pd=chemjac(x,y,yd,cj)
+      pd=[-0.04-cj , 1d4*y(3)               , 1d4*y(2);
+           0.04    ,-1d4*y(3)-2*3d7*y(2)-cj ,-1d4*y(2);
+           1       , 1                      , 1       ]
+  endfunction
 
 y0=[1;0;0];
 yd0=[-0.04;0.04;0];
 t=[1.d-5:0.02:.4,0.41:.1:4,40,400,4000,40000,4d5,4d6,4d7,4d8,4d9,4d10];
 
+
 y=dassl([y0,yd0],0,t,chemres);
 
 info=list([],0,[],[],[],0,0);
@@ -383,19 +366,17 @@ y=dassl([y0,yd0],0,4d10,chemres,chemjac,info);
  
 //Using extra argument for parameters
 //-----------------------------------
-function [r,ires]=chemres(t,y,yd ,a,b,c)
-   r=[-a*y(1)+b*y(2)*y(3)-yd(1)
-       a*y(1)-b*y(2)*y(3)-c*y(2)*y(2)-yd(2)
-       y(1)+y(2)+y(3)-1];
-   ires=0
-endfunction
-
-function pd=chemjac(x,y,yd,cj, a,b,c)
-    pd=[-a-cj , b*y(3)             , b*y(2);
-         a    ,-b*y(3)-2*c*y(2)-cj ,-b*y(2);
-         1    , 1                  , 1       ]
-endfunction
-
+  function [r,ires]=chemres(t,y,yd ,a,b,c)
+     r=[-a*y(1)+b*y(2)*y(3)-yd(1)
+         a*y(1)-b*y(2)*y(3)-c*y(2)*y(2)-yd(2)
+         y(1)+y(2)+y(3)-1];
+     ires=0
+  endfunction
+  function pd=chemjac(x,y,yd,cj, a,b,c)
+      pd=[-a-cj , b*y(3)             , b*y(2);
+           a    ,-b*y(3)-2*c*y(2)-cj ,-b*y(2);
+           1    , 1                  , 1       ]
+  endfunction
 y=dassl([y0,yd0],0,t,list(chemres,0.04,1d4,3d7),list(chemjac,0.04,1d4,3d7));
 
 //using C code
@@ -425,16 +406,13 @@ jaccode=['void chemjac(double *t, double y[], double yd[], double pd[], double *
          '   pd[8] =  1.0;'
          ' }'];
 mputl([rescode;jaccode],TMPDIR+'/mycode.c') //create the C file
-
 // - compile it
 ilib_for_link(['chemres','chemjac'],'mycode.o',[],'c',TMPDIR+'/Makefile',TMPDIR+'/loader.sce');//compile
-
 // - link it with Scilab
 exec(TMPDIR+'/loader.sce') //incremental linking
-
 // - call dassl
 y=dassl([y0,yd0],0,t,'chemres','chemjac');
- </programlisting>
+</programlisting>
   </refsection>
 
   <refsection>
@@ -454,4 +432,4 @@ y=dassl([y0,yd0],0,t,'chemres','chemjac');
       <member><link linkend="external">external</link></member>
     </simplelist>
   </refsection>
-</refentry>
+</refentry>
\ No newline at end of file
index baf1a0a..2b51802 100644 (file)
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
-<refentry version="5.0-subset Scilab" xml:id="feval" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="en" xml:id="feval">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>feval</refname>
-
-    <refpurpose>multiple evaluation</refpurpose>
+    <refpurpose> multiple evaluation</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Calling Sequence</title>
-
     <synopsis>[z]=feval(x,y,f)
 [z]=feval(x,f)</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Parameters</title>
-
     <variablelist>
       <varlistentry>
         <term>x,y</term>
-
         <listitem>
           <para>two vectors</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>f</term>
-
         <listitem>
           <para>function or character string (for Fortran or C call)</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Description</title>
-
-    <para>Multiple evaluation of a function for one or two arguments of vector
-    type :</para>
-
+    <para>
+    Multiple evaluation of a function for one or two arguments 
+    of vector type :
+  </para>
     <variablelist>
       <varlistentry>
         <term>z=feval(x,f)</term>
-
         <listitem>
-          <para>returns the vector <literal>z</literal> defined by
-          <literal>z(i)=f(x(i))</literal></para>
+          <para>returns the vector <literal>z</literal> defined by <literal>z(i)=f(x(i))</literal></para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>z=feval(x,y,f)</term>
-
         <listitem>
-          <para>returns the matrix <literal>z</literal> such as
-          <literal>z(i,j)=f(x(i),y(j))</literal></para>
+          <para>returns the matrix <literal>z</literal> such as <literal>z(i,j)=f(x(i),y(j))</literal></para>
         </listitem>
       </varlistentry>
     </variablelist>
-
     <para><literal>f</literal> is an external (function or routine) accepting
-    on one or two arguments which are supposed to be real. The result returned
-    by <literal>f</literal> can be real or complex. In case of a Fortran call,
-    the function <literal> 'f' </literal> must be defined in the subroutine
-    <literal>ffeval.f</literal> (in directory
-    <literal>SCIDIR/routines/default</literal>)</para>
+    on one or two  arguments which are supposed to be real.
+    The result returned by <literal>f</literal> can be real or complex. 
+    In case of a Fortran call, the function <literal> 'f' </literal> must be defined 
+    in the subroutine <literal>ffeval.f</literal> (in directory <literal>SCIDIR/routines/default</literal>)</para>
   </refsection>
-
   <refsection>
     <title>Examples</title>
+    <programlisting role="example"><![CDATA[
 
-    <programlisting role="example"> 
 deff('[z]=f(x,y)','z=x^2+y^2');
 feval(1:10,1:5,f)
 deff('[z]=f(x,y)','z=x+%i*y');
@@ -104,22 +80,27 @@ feval(1:10,'parab')
 // For dynamic link (see example ftest in ffeval.f)
 // you can use the link command (the parameters depend on the machine):
 // unix('make ftest.o');link('ftest.o','ftest); feval(1:10,1:5,'ftest') 
-   </programlisting>
+  ]]></programlisting>
   </refsection>
-
   <refsection>
     <title>See Also</title>
-
     <simplelist type="inline">
-      <member><link linkend="evstr">evstr</link></member>
-
-      <member><link linkend="horner">horner</link></member>
-
-      <member><link linkend="execstr">execstr</link></member>
-
-      <member><link linkend="external">external</link></member>
-
-      <member><link linkend="link">link</link></member>
+      <member>
+        <link linkend="evstr">evstr</link>
+      </member>
+      <member>
+        <link linkend="horner">horner</link>
+      </member>
+      <member>
+        <link linkend="execstr">execstr</link>
+      </member>
+      <member>
+        <link linkend="external">external</link>
+      </member>
+      <member>
+        <link linkend="link">link</link>
+      </member>
     </simplelist>
   </refsection>
 </refentry>
index 9d4c394..f4c67d8 100644 (file)
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
-<refentry version="5.0-subset Scilab" xml:id="impl" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="en" xml:id="impl">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>impl</refname>
-
-    <refpurpose>differential algebraic equation</refpurpose>
+    <refpurpose> differential algebraic equation</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Calling Sequence</title>
-
     <synopsis>y=impl([type],y0,ydot0,t0,t [,atol, [rtol]],res,adda [,jac])</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Parameters</title>
-
     <variablelist>
       <varlistentry>
         <term>y0,ydot0</term>
-
         <listitem>
           <para>real vectors or matrix (initial conditions).</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>t0</term>
-
         <listitem>
           <para>real scalar (initial time).</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>t</term>
-
         <listitem>
           <para>real vector (times at which the solution is computed).</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>res,adda</term>
-
         <listitem>
           <para>externals (function or character string or list).</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>type</term>
-
         <listitem>
-          <para>string <literal>'adams'</literal> or
-          <literal>'stiff'</literal></para>
+          <para>string <literal>'adams'</literal> or <literal>'stiff'</literal></para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>atol,rtol</term>
-
         <listitem>
-          <para>real scalar or real vector of the same size as as
-          <literal>y</literal>.</para>
+          <para>real scalar or real vector of the same size as  as <literal>y</literal>.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>jac</term>
-
         <listitem>
           <para>external (function or character string or list).</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Description</title>
+    <para>
+    Solution of the linear implicit differential equation</para>
+    <para>
+    A(t,y) dy/dt=g(t,y), y(t0)=y0</para>
+    <para><literal>t0</literal> is the initial instant, <literal>y0</literal> is the vector of initial conditions
+    Vector <literal>ydot0</literal> of the time derivative of <literal>y</literal> at <literal>t0</literal> must
+    also be given.
+    r
+    The input <literal>res</literal> is an external i.e. a function with
+    specified syntax, or the name a Fortran subroutine or a C function 
+    (character string) with specified calling sequence or a list.</para>
+    <para>
+    If <literal>res</literal> is a function, its syntax must be as follows:</para>
+    <programlisting><![CDATA[
 
-    <para>Solution of the linear implicit differential equation</para>
-
-    <para>A(t,y) dy/dt=g(t,y), y(t0)=y0</para>
-
-    <para><literal>t0</literal> is the initial instant, <literal>y0</literal>
-    is the vector of initial conditions Vector <literal>ydot0</literal> of the
-    time derivative of <literal>y</literal> at <literal>t0</literal> must also
-    be given. r The input <literal>res</literal> is an external i.e. a
-    function with specified syntax, or the name a Fortran subroutine or a C
-    function (character string) with specified calling sequence or a
-    list.</para>
-
-    <para>If <literal>res</literal> is a function, its syntax must be as
-    follows:</para>
-
-    <programlisting> 
 r = res(t,y,ydot)
-     </programlisting>
-
-    <para>where <literal>t</literal> is a real scalar (time) and
-    <literal>y</literal> and <literal>ydot</literal> are real vector (state
-    and derivative of the state). This function must return
-    <literal>r=g(t,y)-A(t,y)*ydot</literal>.</para>
-
-    <para>If <literal>res</literal> is a character string, it refers to the
-    name of a Fortran subroutine or a C function. See
-    <literal>SCIDIR/routines/default/Ex-impl.f</literal> for an example to do
-    that.</para>
-
-    <para><literal>res</literal> can also be a list: see the help of
-    <literal>ode</literal>.</para>
+   
+    ]]></programlisting>
+    <para>
+    where <literal>t</literal> is a real scalar (time) and <literal>y</literal> and <literal>ydot</literal> are
+    real vector (state and derivative of the state). 
+    This function must return <literal>r=g(t,y)-A(t,y)*ydot</literal>.</para>
+    <para>
+    If <literal>res</literal> is a character string, it refers to the name of a Fortran
+    subroutine or a C function. See
+    <literal>SCIDIR/routines/default/Ex-impl.f</literal> for an example to do that.</para>
+    <para><literal>res</literal> can also be a list: see the help of <literal>ode</literal>.</para>
+    <para>
+    The input <literal>adda</literal> is also an external.</para>
+    <para>
+    If <literal>adda</literal> is a function, its syntax must be as follows:</para>
+    <programlisting><![CDATA[
 
-    <para>The input <literal>adda</literal> is also an external.</para>
-
-    <para>If <literal>adda</literal> is a function, its syntax must be as
-    follows:</para>
-
-    <programlisting> 
 r = adda(t,y,p)
-     </programlisting>
-
-    <para>and it must return <literal>r=A(t,y)+p</literal> where
-    <literal>p</literal> is a matrix to be added to
-    <literal>A(t,y)</literal>.</para>
-
-    <para>If <literal>adda</literal> is a character string, it refers to the
-    name of a Fortran subroutine or a C function. See
-    <literal>SCIDIR/routines/default/Ex-impl.f</literal> for an example to do
-    that.</para>
-
-    <para><literal>adda</literal> can also be a list: see the help of
-    <literal>ode</literal>.</para>
+   
+    ]]></programlisting>
+    <para>
+    and it must return <literal>r=A(t,y)+p</literal> where <literal>p</literal> is a matrix to be
+    added to <literal>A(t,y)</literal>.</para>
+    <para>
+    If <literal>adda</literal> is a character string, it refers to the name of a Fortran
+    subroutine or a C function. See
+    <literal>SCIDIR/routines/default/Ex-impl.f</literal> for an example to do that.</para>
+    <para><literal>adda</literal> can also be a list: see the help of <literal>ode</literal>.</para>
+    <para>
+    The input <literal>jac</literal> is also an external.</para>
+    <para>
+    If <literal>jac</literal> is a function, its syntax must be as follows:</para>
+    <programlisting><![CDATA[
 
-    <para>The input <literal>jac</literal> is also an external.</para>
-
-    <para>If <literal>jac</literal> is a function, its syntax must be as
-    follows:</para>
-
-    <programlisting> 
 j = jac(t,y,ydot)
-     </programlisting>
-
-    <para>and it must return the Jacobian of
-    <literal>r=g(t,y)-A(t,y)*ydot</literal> with respect to
-    <literal>y</literal>.</para>
-
-    <para>If <literal>jac</literal> is a character string, it refers to the
-    name of a Fortran subroutine or a C function. See
-    <literal>SCIDIR/routines/default/Ex-impl.f</literal> for an example to do
-    that.</para>
-
-    <para><literal>jac</literal> can also be a list: see the help of
-    <literal>ode</literal>.</para>
+   
+    ]]></programlisting>
+    <para>
+    and it must return the Jacobian of <literal>r=g(t,y)-A(t,y)*ydot</literal> with
+    respect to <literal>y</literal>.</para>
+    <para>
+    If <literal>jac</literal> is a character string, it refers to the name of a Fortran
+    subroutine or a C function. See
+    <literal>SCIDIR/routines/default/Ex-impl.f</literal> for an example to do that.</para>
+    <para><literal>jac</literal> can also be a list: see the help of <literal>ode</literal>.</para>
   </refsection>
-
   <refsection>
     <title>Examples</title>
+    <programlisting role="example"><![CDATA[
 
-    <programlisting role="example"> 
 y=impl([1;0;0],[-0.04;0.04;0],0,0.4,'resid','aplusp');
 // Using hot restart 
 //[x1,w,iw]=impl([1;0;0],[-0.04;0.04;0],0,0.2,'resid','aplusp');
 // hot start from previous call 
 //[x1]=impl([1;0;0],[-0.04;0.04;0],0.2,0.4,'resid','aplusp',w,iw);
 //maxi(abs(x1-x))
-   </programlisting>
+  ]]></programlisting>
   </refsection>
-
   <refsection>
     <title>See Also</title>
-
     <simplelist type="inline">
-      <member><link linkend="dassl">dassl</link></member>
-
-      <member><link linkend="ode">ode</link></member>
-
-      <member><link linkend="external">external</link></member>
+      <member>
+        <link linkend="dassl">dassl</link>
+      </member>
+      <member>
+        <link linkend="ode">ode</link>
+      </member>
+      <member>
+        <link linkend="external">external</link>
+      </member>
     </simplelist>
   </refsection>
 </refentry>
index ca7033b..2a6907c 100644 (file)
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
-<refentry version="5.0-subset Scilab" xml:id="int2d" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="en" xml:id="int2d">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>int2d</refname>
-
-    <refpurpose>definite 2D integral by quadrature and cubature
-    method</refpurpose>
+    <refpurpose> definite 2D integral by quadrature and cubature method</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Calling Sequence</title>
-
     <synopsis>[I,err]=int2d(X,Y,f [,params])</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Parameters</title>
-
     <variablelist>
       <varlistentry>
         <term>X</term>
-
         <listitem>
-          <para>a 3 by N array containing the abscissae of the vertices of the
-          N triangles.</para>
+          <para>a 3 by N array containing the abscissae of the vertices   of the N triangles.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>Y</term>
-
         <listitem>
-          <para>a 3 by N array containing the ordinates of the vertices of the
-          N triangles.</para>
+          <para>a 3 by N array containing the ordinates of the vertices   of the N triangles.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>f</term>
-
         <listitem>
-          <para>external (function or list or string) defining the integrand
-          <literal>f(u,v)</literal>;</para>
+          <para>external (function or list or string) defining the integrand <literal>f(u,v)</literal>;</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>params</term>
-
         <listitem>
-          <para>real vector <literal>[tol, iclose, maxtri, mevals,
-          iflag]</literal>. default value is <literal>[1.d-10, 1, 50, 4000,
-          1]</literal>.</para>
-
+          <para>real vector <literal>[tol, iclose, maxtri, mevals, iflag]</literal>. default value is <literal>[1.d-10, 1, 50, 4000, 1]</literal>.</para>
           <variablelist>
             <varlistentry>
               <term>tol</term>
-
               <listitem>
-                <para>the desired bound on the error. If
-                <literal>iflag=0</literal>, <literal>tol</literal> is
-                interpreted as a bound on the relative error; if
-                <literal>iflag=</literal>1, the bound is on the absolute
-                error.</para>
+                <para>:the desired bound on the error.  If <literal>iflag=0</literal>, <literal>tol</literal> is interpreted as a bound on the relative error; if <literal>iflag=</literal>1, the bound is on the absolute error.</para>
               </listitem>
             </varlistentry>
-
             <varlistentry>
               <term>iclose</term>
-
               <listitem>
-                <para>an integer parameter that determines the selection of
-                LQM0 or LQM1 methods. If <literal>iclose=1</literal> then LQM1
-                is used. Any other value of <literal>iclose</literal> causes
-                LQM0 to be used. LQM0 uses function values only at interior
-                points of the triangle. LQM1 is usually more accurate than
-                LQM0 but involves evaluating the integrand at more points
-                including some on the boundary of the triangle. It will
-                usually be better to use LQM1 unless the integrand has
-                singularities on the boundary of the triangle.</para>
+                <para>:an integer parameter that determines the selection of LQM0 or LQM1 methods.  If <literal>iclose=1</literal> then LQM1 is used. Any other value of <literal>iclose</literal> causes LQM0 to be used. LQM0 uses function values only at interior points of the triangle.  LQM1 is usually more accurate than LQM0 but involves evaluating the integrand at more points including some on the boundary of the triangle.  It will usually be better to use LQM1 unless the integrand has singularities on the boundary of the triangle.</para>
               </listitem>
             </varlistentry>
-
             <varlistentry>
               <term>maxtri</term>
-
               <listitem>
-                <para>the maximum number of triangles in the final
-                triangulation of the region</para>
+                <para>:the maximum number of triangles in the final triangulation of the region</para>
               </listitem>
             </varlistentry>
-
             <varlistentry>
               <term>mevals</term>
-
               <listitem>
-                <para>the maximum number of function evaluations to be
-                allowed. This number will be effective in limiting the
-                computation only if it is less than
-                94*<literal>maxtri</literal> when LQM1 is specified or
-                56*<literal>maxtri</literal> when LQM0 is specified.</para>
+                <para>the maximum number of function evaluations to be allowed.  This number will be effective in limiting the computation only if it is less than 94*<literal>maxtri</literal>  when LQM1 is specified or 56*<literal>maxtri</literal> when LQM0 is specified.</para>
               </listitem>
             </varlistentry>
-
             <varlistentry>
               <term>iflag</term>
-
               <listitem>
-                <para></para>
+                <para>:</para>
               </listitem>
             </varlistentry>
           </variablelist>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>I</term>
-
         <listitem>
           <para>the integral value</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>err</term>
-
         <listitem>
           <para>the estimated error</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Description</title>
-
     <para><literal>int2d</literal> computes the two-dimensional integral of a
-    function <literal>f</literal> over a region consisting of
-    <literal>n</literal> triangles. A total error estimate is obtained and
-    compared with a tolerance - <literal>tol</literal> - that is provided as
-    input to the subroutine. The error tolerance is treated as either relative
-    or absolute depending on the input value of <literal>iflag</literal>. A
-    'Local Quadrature Module' is applied to each input triangle and estimates
-    of the total integral and the total error are computed. The local
-    quadrature module is either subroutine LQM0 or subroutine LQM1 and the
-    choice between them is determined by the value of the input variable
-    <literal>iclose</literal>.</para>
-
-    <para>If the total error estimate exceeds the tolerance, the triangle with
-    the largest absolute error is divided into two triangles by a median to
-    its longest side. The local quadrature module is then applied to each of
-    the subtriangles to obtain new estimates of the integral and the error.
-    This process is repeated until either (1) the error tolerance is
-    satisfied, (2) the number of triangles generated exceeds the input
-    parameter <literal>maxtri</literal>, (3) the number of integrand
-    evaluations exceeds the input parameter <literal>mevals</literal>, or (4)
-    the function senses that roundoff error is beginning to contaminate the
-    result.</para>
+    function <literal>f</literal> over a region consisting of <literal>n</literal> triangles.
+    A total error estimate is obtained and compared with a
+    tolerance - <literal>tol</literal> - that is provided as input to the subroutine.
+    The error tolerance is treated as either relative or absolute
+    depending on the input value of <literal>iflag</literal>.  A 'Local Quadrature
+    Module' is applied to each input triangle and estimates of the
+    total integral and the total error are computed.  The local
+    quadrature module is either subroutine LQM0 or subroutine
+    LQM1 and the choice between them is determined by the
+    value of the input variable <literal>iclose</literal>.</para>
+    <para>
+    If the total error estimate exceeds the tolerance, the triangle
+    with the largest absolute error is divided into two triangles
+    by a median to its longest side.  The local quadrature module
+    is then applied to each of the subtriangles to obtain new
+    estimates of the integral and the error.  This process is
+    repeated until either (1) the error tolerance is satisfied,
+    (2) the number of triangles generated exceeds the input
+    parameter <literal>maxtri</literal>, (3) the number of integrand evaluations
+    exceeds the input parameter <literal>mevals</literal>, or (4) the function
+    senses that roundoff error is beginning to contaminate
+    the result.</para>
   </refsection>
-
   <refsection>
     <title>Examples</title>
+    <programlisting role="example"><![CDATA[
 
-    <programlisting role="example"> 
 X=[0,0;1,1;1,0];
 Y=[0,0;0,1;1,1];
 deff('z=f(x,y)','z=cos(x+y)')
 [I,e]=int2d(X,Y,f)
 // computes the integrand over the square [0 1]x[0 1]
-   </programlisting>
+  ]]></programlisting>
   </refsection>
-
   <refsection>
     <title>See Also</title>
-
     <simplelist type="inline">
-      <member><link linkend="intc">intc</link></member>
-
-      <member><link linkend="intl">intl</link></member>
-
-      <member><link linkend="int3d">int3d</link></member>
-
-      <member><link linkend="intg">intg</link></member>
-
-      <member><link linkend="mesh2d">mesh2d</link></member>
+      <member>
+        <link linkend="intc">intc</link>
+      </member>
+      <member>
+        <link linkend="intl">intl</link>
+      </member>
+      <member>
+        <link linkend="int3d">int3d</link>
+      </member>
+      <member>
+        <link linkend="intg">intg</link>
+      </member>
+      <member>
+        <link linkend="mesh2d">mesh2d</link>
+      </member>
     </simplelist>
   </refsection>
-
   <refsection>
     <title>Authors</title>
-
-    <para>Fortran routine twodq Authors: Kahaner,D.K.,N.B.S.,
-    Rechard,O.W.,N.B.S.,; Barnhill,Robert,Univ. of UTAH</para>
+    <para>Fortran routine twodq Authors: Kahaner,D.K.,N.B.S., Rechard,O.W.,N.B.S.,; Barnhill,Robert,Univ. of UTAH</para>
   </refsection>
 </refentry>
index b061b62..88a8cc7 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
-<refentry version="5.0-subset Scilab" xml:id="int3d" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="en" xml:id="int3d">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>int3d</refname>
-
-    <refpurpose>definite 3D integral by quadrature and cubature
-    method</refpurpose>
+    <refpurpose> definite 3D integral by quadrature and cubature method</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Calling Sequence</title>
-
     <synopsis>[result,err]=int3d(X,Y,Z,f [,nf[,params]])</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Parameters</title>
-
     <variablelist>
       <varlistentry>
         <term>X</term>
-
         <listitem>
-          <para>a 4 by <literal>NUMTET</literal> array containing the
-          abscissae of the vertices of the <literal>NUMTET</literal>
-          tetrahedrons.</para>
+          <para>a 4 by <literal>NUMTET</literal> array containing the abscissae of the vertices   of the <literal>NUMTET</literal> tetrahedrons.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>Y</term>
-
         <listitem>
-          <para>a 4 by <literal>NUMTET</literal> array containing the
-          ordinates of the vertices of the <literal>NUMTET</literal>
-          tetrahedrons.</para>
+          <para>a 4 by <literal>NUMTET</literal> array containing the ordinates of the vertices   of the <literal>NUMTET</literal> tetrahedrons.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>Z</term>
-
         <listitem>
-          <para>a 4 by <literal>NUMTET</literal> array containing the third
-          coordinates of the vertices of the <literal>NUMTET</literal>
-          tetrahedrons.</para>
+          <para>a 4 by <literal>NUMTET</literal> array containing the third coordinates of the vertices   of the <literal>NUMTET</literal> tetrahedrons.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>f</term>
-
         <listitem>
-          <para>external (function or list or string) defining the integrand
-          <literal>f(xyz,nf)</literal>, where <literal>xyz</literal> is the
-          vector of a point coordinates and nf the number functions</para>
+          <para>external (function or list or string) defining the integrand <literal>f(xyz,nf)</literal>, where <literal>xyz</literal> is the vector of a point coordinates and nf the number functions</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>nf</term>
-
         <listitem>
           <para>the number of function to integate (default is 1)</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>params</term>
-
         <listitem>
-          <para>real vector <literal>[minpts, maxpts, epsabs,
-          epsrel]</literal>. default value is <literal>[0, 1000, 0.0,
-          1.d-5]</literal>.</para>
-
+          <para>real vector <literal>[minpts, maxpts, epsabs, epsrel]</literal>. default value is <literal>[0, 1000, 0.0, 1.d-5]</literal>.</para>
           <variablelist>
             <varlistentry>
               <term>epsabs</term>
-
               <listitem>
                 <para>Desired bound on the absolute error.</para>
               </listitem>
             </varlistentry>
-
             <varlistentry>
               <term>epsrel</term>
-
               <listitem>
                 <para>Desired bound on the relative error.</para>
               </listitem>
             </varlistentry>
-
             <varlistentry>
               <term>minpts</term>
-
               <listitem>
                 <para>Minimum number of function evaluations.</para>
               </listitem>
             </varlistentry>
-
             <varlistentry>
               <term>maxpts</term>
-
               <listitem>
-                <para>Maximum number of function evaluations. The number of
-                function evaluations over each subregion is 43</para>
+                <para>Maximum number of function evaluations.  The number of function evaluations over each subregion is 43</para>
               </listitem>
             </varlistentry>
           </variablelist>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>result</term>
-
         <listitem>
           <para>the integral value,or vector of the integral values.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>err</term>
-
         <listitem>
           <para>Estimates of absolute errors.</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Description</title>
+    <para>
+    The function calculates an approximation to a given
+    vector of definite integrals</para>
+    <programlisting><![CDATA[
 
-    <para>The function calculates an approximation to a given vector of
-    definite integrals</para>
-
-    <programlisting> 
 I  I  I (F ,F ,...,F )      dx(3)dx(2)dx(1),
           1  2      numfun
-     </programlisting>
-
-    <para>where the region of integration is a collection of NUMTET
-    tetrahedrons and where</para>
+   
+    ]]></programlisting>
+    <para>
+    where the region of integration is a collection of
+    NUMTET tetrahedrons and where</para>
+    <programlisting><![CDATA[
 
-    <programlisting> 
 F = F (X(1),X(2),X(3)), J = 1,2,...,NUMFUN.
  J   J
-     </programlisting>
-
-    <para>A globally adaptive strategy is applied in order to compute
-    approximations <literal>result(k)</literal> hopefully satisfying, for each
-    component of I, the following claim for accuracy:
+   
+    ]]></programlisting>
+    <para>
+    A globally adaptive strategy is applied in order to
+    compute approximations <literal>result(k)</literal>
+    hopefully satisfying, for each component of I, the
+    following claim for accuracy:
     <literal>ABS(I(K)-RESULT(K))&lt;=MAX(EPSABS,EPSREL*ABS(I(K)))</literal></para>
-
-    <para><literal>int3d</literal> repeatedly subdivides the tetrahedrons with
-    greatest estimated errors and estimates the integrals and the errors over
-    the new subtetrahedrons until the error request is met or
-    <literal>MAXPTS</literal> function evaluations have been used.</para>
-
-    <para>A 43 point integration rule with all evaluation points inside the
+    <para><literal>int3d</literal> repeatedly subdivides the tetrahedrons with greatest
+    estimated errors and estimates the integrals and the errors over the
+    new subtetrahedrons until the error request is met or <literal>MAXPTS</literal>
+    function evaluations have been used.</para>
+    <para>
+    A 43 point integration rule with all evaluation points inside the
     tetrahedron is applied. The rule has polynomial degree 8.</para>
-
-    <para>If the values of the input parameters <literal>EPSABS</literal> or
-    <literal>EPSREL</literal> are selected great enough, an integration rule
-    is applied over each tetrahedron and the results are added up to give the
-    approximations <literal>RESULT(K)</literal>. No further subdivision of the
-    tetrahedrons will then be applied.</para>
-
-    <para>When <literal>int3d</literal> computes estimates to a vector of
-    integrals, all components of the vector are given the same treatment. That
-    is, <literal>I(Fj)</literal> and <literal>I(Fk)</literal> for</para>
-
-    <para><literal>j</literal> not equal to <literal>k</literal>, are
-    estimated with the same subdivision of the region of integration. For
-    integrals with enough similarity, we may save time by applying
-    <literal>int3d</literal> to all integrands in one call. For integrals that
-    varies continuously as functions of some parameter, the estimates produced
-    by <literal>int3d</literal> will also vary continuously when the same
-    subdivision is applied to all components. This will generally not be the
-    case when the different components are given separate treatment.</para>
-
-    <para>On the other hand this feature should be used with caution when the
-    different components of the integrals require clearly different
-    subdivisions.</para>
+    <para>
+    If the values of the input parameters <literal>EPSABS</literal> or <literal>EPSREL</literal> are
+    selected great enough, an integration rule is applied over each
+    tetrahedron and the results are added up to give the approximations
+    <literal>RESULT(K)</literal>. No further subdivision of the tetrahedrons will then
+    be applied.</para>
+    <para>
+    When <literal>int3d</literal> computes estimates to a vector of
+    integrals, all components of the vector are given
+    the same treatment. That is, <literal>I(Fj)</literal> and <literal>I(Fk)</literal> for</para>
+    <para><literal>j</literal> not equal to <literal>k</literal>, are estimated with the same
+    subdivision of the region of integration.
+    For integrals with enough similarity, we may save
+    time by applying <literal>int3d</literal> to all integrands in one call.
+    For integrals that varies continuously as functions of
+    some parameter, the estimates produced by <literal>int3d</literal>  will
+    also vary continuously when the same subdivision is
+    applied to all components. This will generally not be
+    the case when the different components are given
+    separate treatment.</para>
+    <para>
+    On the other hand this feature should be used with
+    caution when the different components of the integrals
+    require clearly different subdivisions.</para>
   </refsection>
-
   <refsection>
     <title>References</title>
-
-    <para>Fortran routine dcutet.f</para>
+    <para>
+    Fortran routine dcutet.f</para>
   </refsection>
-
   <refsection>
     <title>Examples</title>
+    <programlisting role="example"><![CDATA[
 
-    <programlisting role="example"> 
 X=[0;1;0;0];
 Y=[0;0;1;0];
 Z=[0;0;0;1];
@@ -211,7 +164,8 @@ Z=[0;0;0;1];
 // computes the integrand exp(x*x+y*y+z*z) over the 
 //tetrahedron (0.,0.,0.),(1.,0.,0.),(0.,1.,0.),(0.,0.,1.)
 
-//integration over a cube  -1&lt;=x&lt;=1;-1&lt;=y&lt;=1;-1&lt;=z&lt;=1
+
+//integration over a cube  -1<=x<=1;-1<=y<=1;-1<=z<=1
 
 //  bottom  -top-     right    -left-   front   -rear- 
 X=[ 0, 0,    0, 0,    0, 0,    0, 0,    0, 0,    0, 0;          
@@ -232,52 +186,58 @@ function v=f(xyz,numfun),v=exp(xyz'*xyz),endfunction
 
 function v=f(xyz,numfun),v=1,endfunction
 [result,err]=int3d(X,Y,Z,f,1,[0,100000,1.d-5,1.d-7])
-   </programlisting>
-  </refsection>
 
+   
+  ]]></programlisting>
+  </refsection>
   <refsection>
     <title>See Also</title>
-
     <simplelist type="inline">
-      <member><link linkend="intc">intc</link></member>
-
-      <member><link linkend="intl">intl</link></member>
-
-      <member><link linkend="int2d">int2d</link></member>
+      <member>
+        <link linkend="intc">intc</link>
+      </member>
+      <member>
+        <link linkend="intl">intl</link>
+      </member>
+      <member>
+        <link linkend="int2d">int2d</link>
+      </member>
     </simplelist>
   </refsection>
-
   <refsection>
     <title>Authors</title>
-
     <variablelist>
       <varlistentry>
         <term>Jarle Berntsen</term>
-
         <listitem>
-          <para>The Computing Centre, University of Bergen, Thormohlens gt.
-          55, N-5008 Bergen, Norway Phone.. 47-5-544055 Email..
-          jarle@eik.ii.uib.no,</para>
+          <para> The Computing Centre,
+University of Bergen, Thormohlens gt. 55,
+N-5008 Bergen, Norway
+Phone..  47-5-544055
+Email..  jarle@eik.ii.uib.no, 
+</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>Ronald Cools</term>
-
         <listitem>
-          <para>Dept. of Computer Science, Katholieke Universiteit Leuven,
-          Celestijnenlaan 200A, B-3030 Heverlee, Belgium Phone.. 32-16-201015
-          (3562) Email.. ronald@cs.kuleuven.ac.be,</para>
+          <para> Dept. of Computer Science,
+Katholieke Universiteit Leuven, Celestijnenlaan 200A,
+B-3030 Heverlee, Belgium
+Phone..  32-16-201015 (3562)
+Email..  ronald@cs.kuleuven.ac.be,
+</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>Terje O. Espelid</term>
-
         <listitem>
-          <para>Department of Informatics, University of Bergen, Thormohlens
-          gt. 55, N-5008 Bergen, Norway Phone.. 47-5-544180 Email..
-          terje@eik.ii.uib.no</para>
+          <para> Department of Informatics,
+University of Bergen, Thormohlens gt. 55,
+N-5008 Bergen, Norway
+Phone..  47-5-544180
+Email..  terje@eik.ii.uib.no
+</para>
         </listitem>
       </varlistentry>
     </variablelist>
index 96a8576..d5b8933 100644 (file)
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
-<refentry version="5.0-subset Scilab" xml:id="intg" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="en" xml:id="intg">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>intg</refname>
-
-    <refpurpose>definite integral</refpurpose>
+    <refpurpose> definite integral</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Calling Sequence</title>
-
     <synopsis>[v,err]=intg(a,b,f [,ea [,er])</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Parameters</title>
-
     <variablelist>
       <varlistentry>
         <term>a,b</term>
-
         <listitem>
           <para>real numbers</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>f</term>
-
         <listitem>
           <para>external (function or list or string)</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>ea, er</term>
-
         <listitem>
           <para>real numbers</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>ea</term>
-
         <listitem>
-          <para>absolute error required on the result. Default value:
-          1.d-14</para>
+          <para>absolute error required on the result. Default value: 1.d-14</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>er</term>
-
         <listitem>
-          <para>relative error required on the result. Default value:
-          1.d-8</para>
+          <para>relative error required on the result. Default value: 1.d-8</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>err</term>
-
         <listitem>
           <para>estimated absolute error on the result.</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Description</title>
-
-    <para><literal>intg(a,b,f)</literal> evaluates the definite integral from
-    <literal>a</literal> to <literal>b</literal> of <literal>f(t)dt</literal>.
-    The function <literal>f(t)</literal> should be continuous.</para>
-
+    <para><literal>intg(a,b,f)</literal> evaluates the definite integral  from <literal>a</literal> to
+    <literal>b</literal> of <literal>f(t)dt</literal>. The function <literal>f(t)</literal>
+      should be continuous.</para>
     <para>The evaluation hopefully satisfies following claim for accuracy:
     <literal>abs(I-v)&lt;= max(ea,er*abs(I))</literal> where I stands for the
     exact value of the integral.</para>
-
     <para><literal>f</literal> is an external :</para>
-
-    <para>If <literal>f</literal> is function its definition must be as
-    follows <literal> y = f(t) </literal></para>
-
-    <para>If <literal>f</literal> is a list the list must be as follows:
-    <literal> list(f,x1,x2,...)</literal> where <literal>f</literal> is a
-    function with calling sequence <literal>f(t,x1,x2,...)</literal>.</para>
-
-    <para>If <literal>f</literal> is a string it refers to a the name of a
-    Fortran function or a C prodedure with a given calling sequence:</para>
-
-    <para>In the fortran case the calling sequence should be <literal>double
-    precision function f(x)</literal> where <literal>x</literal> is also a
-    double precision number.</para>
-
-    <para>In the C case the calling sequence should be <literal>double
-    f(double *x)</literal>.</para>
+    <para>
+    If <literal>f</literal> is function its definition must be as follows
+    <literal> y = f(t) </literal></para>
+    <para>
+    If <literal>f</literal> is a list the list must be as follows:
+    <literal> list(f,x1,x2,...)</literal> where <literal>f</literal> is a function with calling
+    sequence <literal>f(t,x1,x2,...)</literal>.</para>
+    <para>If <literal>f</literal> is a string it refers to a the name
+    of a Fortran function or a C prodedure with a given calling sequence: </para>
+    <para>In the fortran case the calling sequence should be 
+       <literal>double precision function f(x)</literal> where <literal>x</literal> is
+      also a double precision number. </para>
+    <para>In the C case the calling sequence should be 
+       <literal>double f(double *x)</literal>. </para>
   </refsection>
-
   <refsection>
     <title>Examples</title>
+    <programlisting role="example"><![CDATA[
 
-    <programlisting role="example"> 
 //Scilab function case
 function y=f(x),y=x*sin(30*x)/sqrt(1-((x/(2*%pi))^2)),endfunction
 exact=-2.5432596188;
@@ -146,20 +113,17 @@ F=['      double precision function ffun(x)'
    '      return'
    '      end'];
 mputl(F,TMPDIR+'/ffun.f')
-
 // compile the fortran code
 l=ilib_for_link('ffun','ffun.o',[],'f',TMPDIR+'/Makefile');
-
 // incremental linking
 link(l,'ffun','f')
-
 //integrate the function
 I=intg(0,2*%pi,'ffun')
 abs(exact-I)
 
 // C code case (C compiler required)
 // write down the C code
-C=['#include &lt;math.h&gt;'
+C=['#include <math.h>'
    'double cfun(double *x)'
    '{'
    '  double y,pi=3.14159265358979312;'
@@ -167,41 +131,40 @@ C=['#include &lt;math.h&gt;'
    '  return *x*sin(30.0e0**x)/sqrt(1.0e0-y*y);'
    '}'];
 mputl(C,TMPDIR+'/cfun.c')
-
 // compile the C code
 l=ilib_for_link('cfun','cfun.o',[],'c',TMPDIR+'/Makefile');
-
 // incremental linking
 link(l,'cfun','c')
-
 //integrate the function
 I=intg(0,2*%pi,'cfun')
 abs(exact-I)
-  </programlisting>
-  </refsection>
 
+  ]]></programlisting>
+  </refsection>
   <refsection>
     <title>See Also</title>
-
     <simplelist type="inline">
-      <member><link linkend="intc">intc</link></member>
-
-      <member><link linkend="intl">intl</link></member>
-
-      <member><link linkend="inttrap">inttrap</link></member>
-
-      <member><link linkend="intsplin">intsplin</link></member>
-
-      <member><link linkend="ode">ode</link></member>
+      <member>
+        <link linkend="intc">intc</link>
+      </member>
+      <member>
+        <link linkend="intl">intl</link>
+      </member>
+      <member>
+        <link linkend="inttrap">inttrap</link>
+      </member>
+      <member>
+        <link linkend="intsplin">intsplin</link>
+      </member>
+      <member>
+        <link linkend="ode">ode</link>
+      </member>
     </simplelist>
   </refsection>
-
   <refsection>
     <title>Used Functions</title>
-
-    <para>The associated routines can be found in routines/integ directory
-    :</para>
-
-    <para>dqag0.f and dqags.f from quadpack</para>
+    <para>The associated routines can be found in  routines/integ directory :</para>
+    <para>dqag0.f and dqags.f from quadpack </para>
   </refsection>
 </refentry>
index c6a9286..00e4ede 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
-<refentry version="5.0-subset Scilab" xml:id="ode" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="en" xml:id="ode">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>ode</refname>
-
-    <refpurpose>ordinary differential equation solver</refpurpose>
+    <refpurpose> ordinary differential equation solver</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Calling Sequence</title>
-
     <synopsis>y=ode(y0,t0,t,f)
 [y,w,iw]=ode([type],y0,t0,t [,rtol [,atol]],f [,jac] [,w,iw])
 [y,rd,w,iw]=ode("root",y0,t0,t [,rtol [,atol]],f [,jac],ng,g [,w,iw])
 y=ode("discrete",y0,k0,kvect,f)</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Parameters</title>
-
     <variablelist>
       <varlistentry>
         <term>y0</term>
-
         <listitem>
           <para>real vector or matrix (initial conditions).</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>t0</term>
-
         <listitem>
           <para>real scalar (initial time).</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>t</term>
-
         <listitem>
           <para>real vector (times at which the solution is computed).</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>f</term>
-
         <listitem>
           <para>external (function or character string or list).</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>type</term>
-
         <listitem>
-          <para>one of the following character string: <literal>"adams"
-          "stiff" "rk" "rkf" "fix" "discrete" "roots"</literal></para>
+          <para>one of the following character string: <literal>"adams" "stiff" "rk" "rkf" "fix" "discrete" "roots"</literal></para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>rtol,atol</term>
-
         <listitem>
-          <para>real constants or real vectors of the same size as
-          <literal>y</literal>.</para>
+          <para>real constants or real vectors of the same size as <literal>y</literal>.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>jac</term>
-
         <listitem>
           <para>external (function or character string or list).</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>w,iw</term>
-
         <listitem>
           <para>real vectors.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>ng</term>
-
         <listitem>
           <para>integer.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>g</term>
-
         <listitem>
           <para>external (function or character string or list).</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>k0</term>
-
         <listitem>
           <para>integer (initial time). kvect : integer vector.</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Description</title>
-
-    <para><literal>ode</literal> is the standard function for solving explicit
-    ODE systems defined by: dy/dt=f(t,y) , y(t0)=y0. It is an interface to
-    various solvers, in particular to ODEPACK. The type of problem solved and
-    the method used depend on the value of the first optional argument
-    <literal>type</literal> which can be one of the following strings:</para>
-
+    <para><literal>ode</literal> is the standard function for solving explicit ODE
+      systems defined by:      dy/dt=f(t,y) , y(t0)=y0.
+
+      It is an interface to various solvers, in particular to ODEPACK.
+      The type of problem solved and the method used depend on the value of
+      the first optional argument <literal>type</literal> which can be one of the
+      following strings:
+    </para>
     <variablelist>
       <varlistentry>
         <term>&lt;not given&gt;:</term>
-
         <listitem>
-          <para><literal>lsoda</literal> solver of package ODEPACK is called
-          by default. It automatically selects between nonstiff
-          predictor-corrector Adams method and stiff Backward Differentiation
-          Formula (BDF) method. It uses nonstiff method initially and
-          dynamically monitors data in order to decide which method to
-          use.</para>
+          <para><literal>lsoda</literal> solver of package ODEPACK is called by default. It automatically selects between nonstiff predictor-corrector Adams method and stiff Backward Differentiation Formula (BDF) method. It uses nonstiff method initially and dynamically  monitors data in order to decide which method to use.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>"adams":</term>
-
         <listitem>
-          <para>This is for nonstiff problems. <literal>lsode</literal> solver
-          of package ODEPACK is called and it uses the Adams method.</para>
+          <para>This is for nonstiff problems. <literal>lsode</literal> solver of package ODEPACK is called and it uses the Adams method.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>"stiff":</term>
-
         <listitem>
-          <para>This is for stiff problems. <literal>lsode</literal> solver of
-          package ODEPACK is called and it uses the BDF method.</para>
+          <para>This is for stiff problems. <literal>lsode</literal> solver of package ODEPACK is called and it uses the BDF method.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>"rk":</term>
-
         <listitem>
           <para>Adaptive Runge-Kutta of order 4 (RK4) method.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>"rkf":</term>
-
         <listitem>
-          <para>The Shampine and Watts program based on Fehlberg's Runge-Kutta
-          pair of order 4 and 5 (RKF45) method is used. This is for non-stiff
-          and mildly stiff problems when derivative evaluations are
-          inexpensive. This method should generally not be used when the user
-          is demanding high accuracy.</para>
+          <para>The Shampine and Watts program based on Fehlberg's Runge-Kutta pair of order 4 and 5 (RKF45) method is used. This is for non-stiff and mildly stiff problems when derivative evaluations are inexpensive.  This method should generally not be used when the user is demanding high accuracy.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>"fix":</term>
-
         <listitem>
-          <para>Same solver as "rkf", but the user interface is very simple,
-          i.e. only <literal>rtol</literal> and <literal>atol</literal>
-          parameters can be passed to the solver. This is the simplest method
-          to try.</para>
+          <para>Same solver as "rkf", but the user interface is very simple, i.e. only <literal>rtol</literal> and <literal>atol</literal>  parameters can be passed to the solver. This is the simplest method to try.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>"root":</term>
-
         <listitem>
-          <para>ODE solver with rootfinding capabilities. The
-          <literal>lsodar</literal> solver of package ODEPACK is used. It is a
-          variant of the <literal>lsoda</literal> solver where it finds the
-          roots of a given vector function. See help on ode_root for more
-          details.</para>
+          <para>ODE solver with rootfinding capabilities.  The <literal>lsodar</literal> solver of package ODEPACK is used. It is a variant of the <literal>lsoda</literal> solver where it finds the roots of a given vector function. See help on ode_root for more details.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>"discrete":</term>
-
         <listitem>
-          <para>Discrete time simulation. See help on ode_discrete for more
-          details.</para>
+          <para>Discrete time simulation. See help on ode_discrete for more details.</para>
         </listitem>
       </varlistentry>
     </variablelist>
-
-    <para>In this help we only describe the use of <literal>ode</literal> for
-    standard explicit ODE systems.</para>
-
+    <para>
+      In this help we only describe the use of <literal>ode</literal> for standard
+      explicit ODE systems.</para>
     <itemizedlist>
       <listitem>
         <para>The simplest call of <literal>ode</literal> is:
-        <literal>y=ode(y0,t0,t,f)</literal> where <literal>y0</literal> is the
-        vector of initial conditions, <literal>t0</literal> is the initial
-        time, <literal>t</literal> is the vector of times at which the
-        solution <literal>y</literal> is computed and <literal>y</literal> is
-        matrix of solution vectors
-        <literal>y=[y(t(1)),y(t(2)),...]</literal>.</para>
-
-        <para>The input argument <literal>f</literal> defines the RHS of the
-        first order differential equation: dy/dt=f(t,y). It is an external
-        i.e. a function with specified syntax, or the name of a Fortran
-        subroutine or a C function (character string) with specified calling
-        sequence or a list:</para>
-
+         <literal>y=ode(y0,t0,t,f)</literal>
+         where <literal>y0</literal> is the vector of initial conditions, <literal>t0</literal> is the
+         initial time, <literal>t</literal> is the vector of times at which the solution 
+         <literal>y</literal> is computed and <literal>y</literal> is matrix of solution vectors 
+         <literal>y=[y(t(1)),y(t(2)),...]</literal>.</para>
+        <para>
+         The input argument <literal>f</literal>  defines the RHS of the first order differential equation:
+         dy/dt=f(t,y). It is an external i.e. a function with
+         specified syntax, or the name of a Fortran subroutine or a C function 
+         (character string) with specified calling sequence or a list:</para>
         <itemizedlist>
           <listitem>
-            <para>If <literal>f</literal> is a Scilab function, its syntax
-            must be <literal>ydot = f(t,y)</literal>, where
-            <literal>t</literal> is a real scalar (time) and
-            <literal>y</literal> a real vector (state) and
-            <literal>ydot</literal>a real vector (dy/dt)</para>
+            <para> If <literal>f</literal> is a Scilab function, its syntax must be
+             <literal>ydot = f(t,y)</literal>, where <literal>t</literal> is a real scalar
+             (time) and <literal>y</literal> a real vector (state) and
+             <literal>ydot</literal>a real vector (dy/dt)</para>
           </listitem>
-
           <listitem>
-            <para>If <literal>f</literal> is a character string, it refers to
-            the name of a Fortran subroutine or a C function, i.e. if
-            <literal>ode(y0,t0,t,"fex")</literal> is the command, then the
-            subroutine <literal>fex</literal> is called.</para>
-
-            <para>The Fortran routine must have the following calling
-            sequence: <literal>fex(n,t,y,ydot)</literal>, with n an integer, t
-            a double precision scalar, y and ydot double precision
-            vectors.</para>
-
-            <para>The C function must have the following prototype:
-            <literal>fex(int *n,double *t,double *y,double
-            *ydot)</literal></para>
-
-            <para><literal>t</literal> is the time, <literal>y</literal> the
-            state and <literal>ydot</literal>the state derivative
-            (dy/dt)</para>
-
+            <para> If <literal>f</literal> is a character string, it refers to the name of a Fortran
+             subroutine or a C function, i.e. if <literal>ode(y0,t0,t,"fex")</literal> is the
+             command, then the subroutine <literal>fex</literal> is called. </para>
+            <para> The Fortran routine must have the following calling sequence:
+             <literal>fex(n,t,y,ydot)</literal>, with n an integer, t a double precision
+             scalar, y and ydot double precision vectors.
+           </para>
+            <para> The C function must have the following prototype:
+             <literal>fex(int *n,double *t,double *y,double *ydot)</literal>
+           </para>
+            <para><literal>t</literal> is the time, <literal>y</literal> the state and
+             <literal>ydot</literal>the state derivative (dy/dt)</para>
             <para>This external can be build in a OS independant way using
-            <link linkend="ilib_for_link">ilib_for_link</link> and dynamically
-            linked to Scilab by the <link linkend="link">link</link>
-            function.</para>
+                  <link linkend="ilib_for_link">ilib_for_link</link> and dynamically linked to Scilab by the
+             <link linkend="link">link</link> function. </para>
           </listitem>
-
           <listitem>
-            <para>The <literal>f</literal> argument can also be a list with
-            the following structure:
-            <literal>lst=list(realf,u1,u2,...un)</literal> where
-            <literal>realf</literal> is a Scilab function with syntax:
-            <literal>ydot = f(t,y,u1,u2,...,un)</literal></para>
-
-            <para>This syntax allows to use parameters as the arguments of
-            <literal>realf</literal>.</para>
+            <para> The <literal>f</literal> argument can also be a list with the following
+             structure: <literal>lst=list(realf,u1,u2,...un)</literal>
+             where <literal>realf</literal> is a Scilab function with syntax: 
+             <literal>ydot = f(t,y,u1,u2,...,un)</literal></para>
+            <para> This syntax allows to use parameters as the arguments of <literal>realf</literal>.</para>
           </listitem>
         </itemizedlist>
-
-        <para>The function <literal>f</literal> can return a <literal>p x
-        q</literal> matrix instead of a vector. With this matrix notation, we
-        solve the <literal>n=p+q</literal> ODE's system
-        <literal>dY/dt=F(t,Y)</literal> where <literal>Y</literal> is a
-        <literal>p x q</literal> matrix. Then initial conditions,
-        <literal>Y0</literal>, must also be a <literal>p x q</literal> matrix
-        and the result of <literal>ode</literal> is the <literal>p x
-        q(T+1)</literal> matrix
-        <literal>[Y(t_0),Y(t_1),...,Y(t_T)]</literal>.</para>
+        <para>
+         The function <literal>f</literal> can return a <literal>p x q</literal> matrix instead of a vector. 
+         With this matrix notation, we solve the <literal>n=p+q</literal> ODE's 
+         system <literal>dY/dt=F(t,Y)</literal> where <literal>Y</literal> is a <literal>p x q</literal> matrix.
+         Then initial conditions, <literal>Y0</literal>, must also be
+         a <literal>p x q</literal> matrix and the result of <literal>ode</literal> is the
+         <literal>p x q(T+1)</literal> matrix <literal>[Y(t_0),Y(t_1),...,Y(t_T)]</literal>.</para>
       </listitem>
-
       <listitem>
-        <para>Optional input parameters can be given for the error of the
-        solution: <literal>rtol</literal> and <literal>atol</literal> are
-        threshold for relative and absolute estimated errors. The estimated
-        error on <literal>y(i)</literal> is:
-        <literal>rtol(i)*abs(y(i))+atol(i)</literal></para>
-
-        <para>and integration is carried out as far as this error is small for
-        all components of the state. If <literal>rtol</literal> and/or
-        <literal>atol</literal> is a constant <literal>rtol(i)</literal>
-        and/or <literal>atol(i)</literal> are set to this constant value.
-        Default values for <literal>rtol</literal> and <literal>atol</literal>
-        are respectively <literal>rtol=1.d-5</literal> and
-        <literal>atol=1.d-7</literal> for most solvers and
-        <literal>rtol=1.d-3</literal> and <literal>atol=1.d-4</literal> for
-        <literal>"rfk"</literal> and <literal>"fix"</literal>.</para>
+        <para>
+         Optional input parameters can be given for the error of the solution:
+         <literal>rtol</literal> and <literal>atol</literal> 
+         are threshold for relative and absolute estimated errors. 
+         The estimated error on <literal>y(i)</literal> is: <literal>rtol(i)*abs(y(i))+atol(i)</literal></para>
+        <para>
+         and integration is carried out as far as this error is small
+         for all components of the state.
+         If <literal>rtol</literal> and/or <literal>atol</literal> is a constant <literal>rtol(i)</literal> and/or 
+         <literal>atol(i)</literal> are
+         set to this constant value. Default values for <literal>rtol</literal> and <literal>atol</literal>
+         are respectively <literal>rtol=1.d-5</literal> and <literal>atol=1.d-7</literal> for most
+         solvers and <literal>rtol=1.d-3</literal> and <literal>atol=1.d-4</literal> for <literal>"rfk"</literal> and 
+         <literal>"fix"</literal>.</para>
       </listitem>
-
       <listitem>
-        <para>For stiff problems, it is better to give the Jacobian of the RHS
-        function as the optional argument <literal>jac</literal>. It is an
-        external i.e. a function with specified syntax, or the name of a
-        Fortran subroutine or a C function (character string) with specified
-        calling sequence or a list.</para>
-
-        <para>If <literal>jac</literal> is a function the syntax should be
-        <literal>J=jac(t,y)</literal></para>
-
-        <para>where <literal>t</literal> is a real scalar (time) and
-        <literal>y</literal> a real vector (state). The result matrix
-        <literal>J</literal> must evaluate to df/dx i.e. <literal>J(k,i) =
-        dfk/dxi</literal> with <literal>fk</literal> = kth component of
-        f.</para>
-
-        <para>If <literal>jac</literal> is a character string it refers to the
-        name of a Fortran subroutine or a C function, with the following
-        calling sequence:</para>
-
-        <para>Fortran case:</para>
-
-        <programlisting> 
-subroutine fex(n,t,y,ml,mu,J,nrpd) 
-integer n,ml,mu,nrpd
-double precision t,y(*),J(*)
-       </programlisting>
-
-        <para>C case:</para>
-
-        <programlisting> 
-void fex(int *n,double *t,double *y,int *ml,int *mu,double *J,int *nrpd,)
-       </programlisting>
-
-        <para><literal>jac(n,t,y,ml,mu,J,nrpd)</literal>. In most cases you
-        have not to refer <literal>ml</literal>, <literal>mu</literal> and
-        <literal>nrpd</literal>.</para>
-
-        <para>If <literal>jac</literal> is a list the same conventions as for
-        <literal>f</literal> apply.</para>
+        <para> For stiff problems, it is better to give the Jacobian of the RHS
+         function as the optional argument <literal>jac</literal>.
+         It is an external i.e. a function with
+         specified syntax, or the name of a Fortran subroutine or a C function 
+         (character string) with specified calling sequence or a list.</para>
+        <para>If <literal>jac</literal> is a function the syntax should be <literal>J=jac(t,y)</literal></para>
+        <para>where <literal>t</literal> is a real scalar (time) and <literal>y</literal> a real vector (state).
+       The result matrix <literal>J</literal> must evaluate to df/dx i.e. 
+       <literal>J(k,i) = dfk/dxi</literal> with <literal>fk</literal> = kth component of f.</para>
+        <para>If <literal>jac</literal> is a character string it refers to the name of a Fortran
+         subroutine or a C function, with the following calling sequence: </para>
+        <para>Fortran case: </para>
+        <programlisting><![CDATA[
+             subroutine fex(n,t,y,ml,mu,J,nrpd) 
+             integer n,ml,mu,nrpd
+             double precision t,y(*),J(*)
+             ]]></programlisting>
+        <para> C case:</para>
+        <programlisting><![CDATA[
+             void fex(int *n,double *t,double *y,int *ml,int *mu,double *J,int *nrpd,)
+             ]]></programlisting>
+        <para><literal>jac(n,t,y,ml,mu,J,nrpd)</literal>. In most cases you have
+         not to refer <literal>ml</literal>, <literal>mu</literal> and <literal>nrpd</literal>.</para>
+        <para>If <literal>jac</literal> is a list the same conventions as for <literal>f</literal>
+         apply.</para>
       </listitem>
-
       <listitem>
-        <para>Optional arguments <literal>w</literal> and
-        <literal>iw</literal> are vectors for storing information returned by
-        the integration routine (see <link
-        linkend="ode_optional_output">ode_optional_output</link> for details).
-        When these vectors are provided in RHS of <literal>ode</literal> the
-        integration re-starts with the same parameters as in its previous
-        stop.</para>
+        <para>
+         Optional arguments <literal>w</literal> and <literal>iw</literal>  are 
+         vectors for storing information returned by the
+         integration routine (see <link linkend="ode_optional_output">ode_optional_output</link> for
+         details). When these vectors are provided in RHS
+         of <literal>ode</literal> the integration re-starts with the same  parameters as
+         in its previous stop.</para>
       </listitem>
-
       <listitem>
-        <para>More options can be given to ODEPACK solvers by using
-        <literal>%ODEOPTIONS</literal> variable. See <link
-        linkend="odeoptions">odeoptions</link>.</para>
+        <para>
+         More options can be given to ODEPACK solvers by using
+         <literal>%ODEOPTIONS</literal> variable. See <link linkend="odeoptions">odeoptions</link>.</para>
       </listitem>
     </itemizedlist>
   </refsection>
-
   <refsection>
     <title>Examples</title>
-
-    <programlisting role="example"> 
-// ---------- Simple one dimension ODE (Scilab function external)
-// dy/dt=y^2-y sin(t)+cos(t), y(0)=0
-function ydot=f(t,y),ydot=y^2-y*sin(t)+cos(t),endfunction
-y0=0;t0=0;t=0:0.1:%pi;
-y=ode(y0,t0,t,f)
-plot(t,y)
-
-// ---------- Simple one dimension ODE (C coded external)
-ccode=['#include &lt;math.h&gt;'
-       'void myode(int *n,double *t,double *y,double *ydot)'
-       '{'
-       '  ydot[0]=y[0]*y[0]-y[0]*sin(*t)+cos(*t);'
-       '}']
-mputl(ccode,TMPDIR+'/myode.c') //create the C file
-ilib_for_link('myode','myode.o',[],'c',TMPDIR+'/Makefile',TMPDIR+'/loader.sce');//compile
-exec(TMPDIR+'/loader.sce') //incremental linking
-y0=0;t0=0;t=0:0.1:%pi;
-y=ode(y0,t0,t,'myode');
-
-// ---------- Simulation of dx/dt = A x(t) + B u(t) with u(t)=sin(omega*t),
-// x0=[1;0]
-// solution x(t) desired at t=0.1, 0.2, 0.5 ,1.
-// A and u function are passed to RHS function in a list. 
-// B and omega are passed as global variables
-function xdot=linear(t,x,A,u),xdot=A*x+B*u(t),endfunction
-function ut=u(t),ut=sin(omega*t),endfunction
-A=[1 1;0 2];B=[1;1];omega=5;
-ode([1;0],0,[0.1,0.2,0.5,1],list(linear,A,u))
-
-// ---------- Matrix notation Integration of the Riccati differential equation
-// Xdot=A'*X + X*A - X'*B*X + C , X(0)=Identity
-// Solution at t=[1,2] 
-function Xdot=ric(t,X),Xdot=A'*X+X*A-X'*B*X+C,endfunction  
-A=[1,1;0,2]; B=[1,0;0,1]; C=[1,0;0,1];
-t0=0;t=0:0.1:%pi;
-X=ode(eye(A),0,t,ric)
-
-// ---------- Matrix notation, Computation of exp(A)
-A=[1,1;0,2];
-function xdot=f(t,x),xdot=A*x;,endfunction 
-ode(eye(A),0,1,f)
-ode("adams",eye(A),0,1,f)
-
-// ---------- Matrix notation, Computation of exp(A) with stiff matrix, Jacobian given
-A=[10,0;0,-1];
-function xdot=f(t,x),xdot=A*x,endfunction 
-function J=Jacobian(t,y),J=A,endfunction 
-ode("stiff",[0;1],0,1,f,Jacobian)
-    </programlisting>
+    <programlisting role="example"><![CDATA[
+    
+    // ---------- Simple one dimension ODE (Scilab function external)
+    // dy/dt=y^2-y sin(t)+cos(t), y(0)=0
+    function ydot=f(t,y),ydot=y^2-y*sin(t)+cos(t),endfunction
+    y0=0;t0=0;t=0:0.1:%pi;
+    y=ode(y0,t0,t,f)
+    plot(t,y)
+
+    // ---------- Simple one dimension ODE (C coded external)
+    ccode=['#include <math.h>'
+          'void myode(int *n,double *t,double *y,double *ydot)'
+          '{'
+          '  ydot[0]=y[0]*y[0]-y[0]*sin(*t)+cos(*t);'
+          '}']
+    mputl(ccode,TMPDIR+'/myode.c') //create the C file
+    ilib_for_link('myode','myode.o',[],'c',TMPDIR+'/Makefile',TMPDIR+'/loader.sce');//compile
+    exec(TMPDIR+'/loader.sce') //incremental linking
+    y0=0;t0=0;t=0:0.1:%pi;
+    y=ode(y0,t0,t,'myode');
+       
+    // ---------- Simulation of dx/dt = A x(t) + B u(t) with u(t)=sin(omega*t),
+    // x0=[1;0]
+    // solution x(t) desired at t=0.1, 0.2, 0.5 ,1.
+    // A and u function are passed to RHS function in a list. 
+    // B and omega are passed as global variables
+    function xdot=linear(t,x,A,u),xdot=A*x+B*u(t),endfunction
+    function ut=u(t),ut=sin(omega*t),endfunction
+    A=[1 1;0 2];B=[1;1];omega=5;
+    ode([1;0],0,[0.1,0.2,0.5,1],list(linear,A,u))
+
+    // ---------- Matrix notation Integration of the Riccati differential equation
+    // Xdot=A'*X + X*A - X'*B*X + C , X(0)=Identity
+    // Solution at t=[1,2] 
+    function Xdot=ric(t,X),Xdot=A'*X+X*A-X'*B*X+C,endfunction  
+    A=[1,1;0,2]; B=[1,0;0,1]; C=[1,0;0,1];
+    t0=0;t=0:0.1:%pi;
+    X=ode(eye(A),0,t,ric)
+    //
+    // ---------- Matrix notation, Computation of exp(A)
+    A=[1,1;0,2];
+    function xdot=f(t,x),xdot=A*x;,endfunction 
+    ode(eye(A),0,1,f)
+    ode("adams",eye(A),0,1,f)
+
+    // ---------- Matrix notation, Computation of exp(A) with stiff matrix, Jacobian given
+    A=[10,0;0,-1];
+    function xdot=f(t,x),xdot=A*x,endfunction 
+    function J=Jacobian(t,y),J=A,endfunction 
+    ode("stiff",[0;1],0,1,f,Jacobian)
+    
+  ]]></programlisting>
   </refsection>
-
   <refsection>
     <title>See Also</title>
-
     <simplelist type="inline">
-      <member><link linkend="ode_discrete">ode_discrete</link></member>
-
-      <member><link linkend="ode_root">ode_root</link></member>
-
-      <member><link linkend="dassl">dassl</link></member>
-
-      <member><link linkend="impl">impl</link></member>
-
-      <member><link linkend="odedc">odedc</link></member>
-
-      <member><link linkend="odeoptions">odeoptions</link></member>
-
-      <member><link linkend="csim">csim</link></member>
-
-      <member><link linkend="ltitr">ltitr</link></member>
-
-      <member><link linkend="rtitr">rtitr</link></member>
+      <member>
+        <link linkend="ode_discrete">ode_discrete</link>
+      </member>
+      <member>
+        <link linkend="ode_root">ode_root</link>
+      </member>
+      <member>
+        <link linkend="dassl">dassl</link>
+      </member>
+      <member>
+        <link linkend="impl">impl</link>
+      </member>
+      <member>
+        <link linkend="odedc">odedc</link>
+      </member>
+      <member>
+        <link linkend="odeoptions">odeoptions</link>
+      </member>
+      <member>
+        <link linkend="csim">csim</link>
+      </member>
+      <member>
+        <link linkend="ltitr">ltitr</link>
+      </member>
+      <member>
+        <link linkend="rtitr">rtitr</link>
+      </member>
     </simplelist>
   </refsection>
-
   <refsection>
     <title>Authors</title>
-
     <variablelist>
       <varlistentry>
         <term>Alan C. Hindmarsh</term>
-
         <listitem>
-          <para>, mathematics and statistics division, l-316 livermore, ca
-          94550.19</para>
+          <para>,  mathematics and statistics division, l-316
+      livermore, ca 94550.19</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Bibliography</title>
-
-    <para>Alan C. Hindmarsh, lsode and lsodi, two new initial value ordinary
-    differential equation solvers, acm-signum newsletter, vol. 15, no. 4
-    (1980), pp. 10-11.</para>
+    <para>
+      Alan C. Hindmarsh,  lsode and lsodi, two new initial value
+      ordinary differential equation solvers,
+      acm-signum newsletter, vol. 15, no. 4 (1980), pp. 10-11.</para>
   </refsection>
-
   <refsection>
     <title>Used Functions</title>
-
-    <para>The associated routines can be found in routines/integ directory
-    :</para>
-
-    <para>lsode.f lsoda.f lsodar.f</para>
+    <para>
+      The associated routines can be found in  routines/integ directory :</para>
+    <para>
+      lsode.f lsoda.f lsodar.f</para>
   </refsection>
 </refentry>
index 6b84d61..9e16eb4 100644 (file)
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
-<refentry version="5.0-subset Scilab" xml:id="ode_discrete" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="en" xml:id="ode_discrete">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>ode_discrete</refname>
-
-    <refpurpose>ordinary differential equation solver, discrete time
-    simulation</refpurpose>
+    <refpurpose> ordinary differential equation solver, discrete time simulation</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Calling Sequence</title>
-
     <synopsis>y=ode("discrete",y0,k0,kvect,f)</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Parameters</title>
-
     <variablelist>
       <varlistentry>
         <term>y0</term>
-
         <listitem>
           <para>real vector or matrix (initial conditions).</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>t0</term>
-
         <listitem>
           <para>real scalar (initial time).</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>f</term>
-
         <listitem>
           <para>external i.e. function or character string or list.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>k0</term>
-
         <listitem>
           <para>integer (initial time).</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>kvect</term>
-
         <listitem>
           <para>integer vector.</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Description</title>
-
-    <para>With this syntax (first argument equal to
-    <literal>"discrete"</literal>) <literal>ode</literal> computes recursively
-    <literal>y(k+1)=f(k,y(k))</literal> from an initial state
-    <literal>y(k0)</literal> and returns <literal>y(k)</literal> for
-    <literal>k</literal> in <literal>kvect</literal>.
-    <literal>kvect(1)</literal> must be greater than or equal to
-    <literal>k0</literal>.</para>
-
-    <para>Other arguments and other options are the same as for
-    <literal>ode</literal>, see the ode help.</para>
+    <para>
+    With this syntax (first argument equal to <literal>"discrete"</literal>)
+    <literal>ode</literal> computes recursively <literal>y(k+1)=f(k,y(k))</literal>
+    from an initial state
+    <literal>y(k0)</literal> and returns <literal>y(k)</literal> for <literal>k</literal> in <literal>kvect</literal>.
+    <literal>kvect(1)</literal> must be greater than or equal to <literal>k0</literal>.</para>
+    <para>
+    Other arguments and other options are the same as for <literal>ode</literal>, see the
+    ode help.</para>
   </refsection>
-
   <refsection>
     <title>Examples</title>
+    <programlisting role="example"><![CDATA[
 
-    <programlisting role="example"> 
 y1=[1;2;3]; deff("yp=a_function(k,y)","yp=A*y+B*u(k)")
 A=diag([0.2,0.5,0.9]); B=[1;1;1];u=1:10;n=5;
 y=ode("discrete",y1,1,1:n,a_function);
 y(:,2)-(A*y1+B*u(1))
-
 // Now y evaluates  at [y3,y5,y7,y9]
 y=ode("discrete",y1,1,3:2:9,a_function)
-   </programlisting>
+  ]]></programlisting>
   </refsection>
-
   <refsection>
     <title>See Also</title>
-
     <simplelist type="inline">
-      <member><link linkend="ode">ode</link></member>
+      <member>
+        <link linkend="ode">ode</link>
+      </member>
     </simplelist>
   </refsection>
 </refentry>
index df52879..ab4f484 100644 (file)
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
-<refentry version="5.0-subset Scilab" xml:id="ode_root" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="en" xml:id="ode_root">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>ode_root</refname>
-
-    <refpurpose>ordinary differential equation solver with root
-    finding</refpurpose>
+    <refpurpose> ordinary differential equation solver with root finding</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Calling Sequence</title>
-
     <synopsis>y,rd[,w,iw]=ode("root",y0,t0,t [,rtol [,atol]],f [,jac],ng,g [,w,iw])</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Parameters</title>
-
     <variablelist>
       <varlistentry>
         <term>y0</term>
-
         <listitem>
           <para>real vector or matrix (initial conditions).</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>t0</term>
-
         <listitem>
           <para>real scalar (initial time).</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>t</term>
-
         <listitem>
           <para>real vector (times at which the solution is computed).</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>f</term>
-
         <listitem>
           <para>external i.e. function or character string or list.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>rtol,atol</term>
-
         <listitem>
-          <para>real constants or real vectors of the same size as
-          <literal>y</literal>.</para>
+          <para>real constants or real vectors of the same size as <literal>y</literal>.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>jac</term>
-
         <listitem>
           <para>external i.e. function or character string or list.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>w,iw</term>
-
         <listitem>
           <para>real vectors.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>ng</term>
-
         <listitem>
           <para>integer.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>g</term>
-
         <listitem>
           <para>external i.e. function or character string or list.</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Description</title>
-
-    <para>With this syntax (first argument equal to <literal>"root"</literal>)
-    <literal>ode</literal> computes the solution of the differential equation
-    <literal>dy/dt=f(t,y)</literal> until the state <literal>y(t)</literal>
-    crosses the surface <literal>g(t,y)=0</literal>.</para>
-
-    <para><literal>g</literal> should give the equation of the surface. It is
-    an external i.e. a function with specified syntax, or the name of a
-    Fortran subroutine or a C function (character string) with specified
-    calling sequence or a list.</para>
-
-    <para>If <literal>g</literal> is a function the syntax should be as
-    follows:</para>
-
-    <programlisting> 
-z = g(t,y)
-       </programlisting>
-
-    <para>where <literal>t</literal> is a real scalar (time) and
-    <literal>y</literal> a real vector (state). It returns a vector of size
-    <literal>ng</literal> which corresponds to the <literal>ng</literal>
-    constraints. If <literal>g</literal> is a character string it refers to
-    the name of a Fortran subroutine or a C function, with the following
-    calling sequence: <literal>g(n,t,y,ng,gout)</literal> where
-    <literal>ng</literal> is the number of constraints and
-    <literal>gout</literal> is the value of <literal>g</literal> (output of
-    the program). If <literal>g</literal> is a list the same conventions as
-    for <literal>f</literal> apply (see ode help).</para>
-
-    <para>Ouput <literal>rd</literal> is a <literal>1 x k</literal> vector.
-    The first entry contains the stopping time. Other entries indicate which
-    components of <literal>g</literal> have changed sign. <literal>k</literal>
-    larger than 2 indicates that more than one surface
-    (<literal>(k-1)</literal> surfaces) have been simultaneously
-    traversed.</para>
-
-    <para>Other arguments and other options are the same as for
-    <literal>ode</literal>, see the ode help.</para>
+    <para>
+    With this syntax (first argument equal to <literal>"root"</literal>)
+    <literal>ode</literal>
+    computes the solution
+    of the differential equation <literal>dy/dt=f(t,y)</literal> until the state
+    <literal>y(t)</literal> crosses the surface <literal>g(t,y)=0</literal>.</para>
+    <para><literal>g</literal> should give the equation of the surface.
+    It is an external i.e. a function with
+    specified syntax, or the name of a Fortran subroutine or a C function 
+    (character string) with specified calling sequence or a list.</para>
+    <para>
+    If <literal>g</literal> is a function the syntax should be as follows:</para>
+    <programlisting><![CDATA[
+
+z=g(t,y)
+   
+    ]]></programlisting>
+    <para>
+    where <literal>t</literal> is a real scalar (time)  and <literal>y</literal> a real vector (state).
+    It returns a vector of size <literal>ng</literal> which corresponds to 
+    the <literal>ng</literal> constraints. 
+    If <literal>g</literal> is a character string it refers to the name of a Fortran
+    subroutine or a C function, with the following calling sequence: 
+    <literal>g(n,t,y,ng,gout)</literal>
+    where <literal>ng</literal> is the number of constraints and 
+    <literal>gout</literal> is the value of <literal>g</literal> (output of the program).
+    If <literal>g</literal> is a list the same conventions as for <literal>f</literal> apply (see ode
+    help).</para>
+    <para>
+    Ouput <literal>rd</literal> is a <literal>1 x k</literal> vector. The first entry contains the stopping
+    time. Other entries indicate which components of <literal>g</literal> have changed
+    sign. <literal>k</literal> larger than 2 indicates that more than one surface
+    (<literal>(k-1)</literal> surfaces) have been simultaneously traversed.</para>
+    <para>
+    Other arguments and other options are the same as for <literal>ode</literal>, see the
+    ode help.</para>
   </refsection>
-
   <refsection>
     <title>Examples</title>
+    <programlisting role="example"><![CDATA[
 
-    <programlisting role="example"> 
 // Integration of the differential equation
 // dy/dt=y , y(0)=1, and finds the minimum time t such that y(t)=2
 deff("[ydot]=f(t,y)","ydot=y")
 deff("[z]=g(t,y)","z=y-2")
 y0=1;ng=1;
 [y,rd]=ode("roots",y0,0,2,f,ng,g)
+
+
 deff("[z]=g(t,y)","z=y-[2;2;33]")
 [y,rd]=ode("roots",1,0,2,f,3,g)
-   </programlisting>
-  </refsection>
 
+
+  ]]></programlisting>
+  </refsection>
   <refsection>
     <title>See Also</title>
-
     <simplelist type="inline">
-      <member><link linkend="dasrt">dasrt</link></member>
-
-      <member><link linkend="ode">ode</link></member>
+      <member>
+        <link linkend="dasrt">dasrt</link>
+      </member>
+      <member>
+        <link linkend="ode">ode</link>
+      </member>
     </simplelist>
   </refsection>
 </refentry>
index 6fab716..e5fc36d 100644 (file)
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
-<refentry version="5.0-subset Scilab" xml:id="odedc" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="en" xml:id="odedc">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>odedc</refname>
-
-    <refpurpose>discrete/continuous ode solver</refpurpose>
+    <refpurpose> discrete/continuous ode solver</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Calling Sequence</title>
-
     <synopsis>yt=odedc(y0,nd,stdel,t0,t,f)</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Parameters</title>
-
     <variablelist>
       <varlistentry>
         <term>y0</term>
-
         <listitem>
-          <para>real column vector (initial conditions),
-          <literal>y0=[y0c;y0d]</literal> where <literal>y0d</literal> has
-          <literal>nd</literal> components.</para>
+          <para>real column vector (initial conditions), <literal>y0=[y0c;y0d]</literal> where <literal>y0d</literal> has <literal>nd</literal> components.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>nd</term>
-
         <listitem>
           <para>integer, dimension of <literal>y0d</literal></para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>stdel</term>
-
         <listitem>
-          <para>real vector with one or two entries, <literal>stdel=[h,
-          delta]</literal> (with <literal>delta=0</literal> as default
-          value).</para>
+          <para>real vector with one or two entries, <literal>stdel=[h, delta]</literal> (with <literal>delta=0</literal> as default value).</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>t0</term>
-
         <listitem>
           <para>real scalar (initial time).</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>t</term>
-
         <listitem>
-          <para>real (row) vector, instants where <literal>yt</literal> is
-          calculated .</para>
+          <para>real (row) vector, instants where <literal>yt</literal> is calculated .</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>f</term>
-
         <listitem>
-          <para>external i.e. function or character string or list with
-          calling sequence: <literal>yp=f(t,yc,yd,flag)</literal>.</para>
+          <para>external i.e. function or character string or list with calling sequence: <literal>yp=f(t,yc,yd,flag)</literal>.</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Description</title>
+    <para><literal>y=odedc([y0c;y0d],nd,[h,delta],t0,t,f)</literal>
+    computes the solution of a mixed discrete/continuous system. 
+    The discrete system state <literal>yd_k</literal> is embedded into a  piecewise constant <literal>yd(t)</literal> time function as follows:</para>
+    <programlisting><![CDATA[
 
-    <para><literal>y=odedc([y0c;y0d],nd,[h,delta],t0,t,f)</literal> computes
-    the solution of a mixed discrete/continuous system. The discrete system
-    state <literal>yd_k</literal> is embedded into a piecewise constant
-    <literal>yd(t)</literal> time function as follows:</para>
-
-    <programlisting> 
-yd(t) = yd_k for t in 
+yd(t)=yd_k for t in 
 [t_k=delay+k*h,t_(k+1)=delay+(k+1)*h[ (with delay=h*delta).
-       </programlisting>
-
-    <para>The simulated equations are now:</para>
-
-    <programlisting> 
-dyc/dt = f(t,yc(t),yd(t),0),  for t in [t_k,t_(k+1)[
-yc(t0) = y0c
-     </programlisting>
-
-    <para>and at instants <literal>t_k</literal> the discrete variable
-    <literal>yd</literal> is updated by:</para>
-
-    <programlisting> 
-yd(t_k+) = f(yc(t_k-),yd(t_k-),1)
-      </programlisting>
+   
+    ]]></programlisting>
+    <para>
+    The simulated equations are now:</para>
+    <programlisting><![CDATA[
+
+dyc/dt=f(t,yc(t),yd(t),0),  for t in [t_k,t_(k+1)[
+yc(t0)=y0c
+   
+    ]]></programlisting>
+    <para>
+    and at instants <literal>t_k</literal> the discrete variable <literal>yd</literal> is updated by:</para>
+    <programlisting><![CDATA[
+
+yd(t_k+)=f(yc(t_k-),yd(t_k-),1)
+   
+    ]]></programlisting>
+    <para>
+    Note that, using the definition of <literal>yd(t)</literal> the last equation gives</para>
+    <programlisting><![CDATA[
 
-    <para>Note that, using the definition of <literal>yd(t)</literal> the last
-    equation gives</para>
-
-    <programlisting> 
 yd_k = f (t_k,yc(t_k-),yd(t_(k-1)),1)  (yc is time-continuous: yc(t_k-)=yc(tk))
-     </programlisting>
-
-    <para>The calling parameters of <literal>f</literal> are fixed:
-    <literal>ycd=f(t,yc,yd,flag)</literal>; this function must return either
-    the derivative of the vector <literal>yc</literal> if
-    <literal>flag=0</literal> or the update of <literal>yd</literal> if
-    <literal>flag=1</literal>.</para>
-
-    <para><literal>ycd=dot(yc)</literal> must be a vector with same dimension
-    as <literal>yc</literal> if <literal>flag=0</literal> and
-    <literal>ycd=update(yd)</literal> must be a vector with same dimension as
-    <literal>yd</literal> if <literal>flag=1</literal>.</para>
-
-    <para><literal>t</literal> is a vector of instants where the solution
-    <literal>y</literal> is computed.</para>
-
-    <para><literal>y</literal> is the vector
-    <literal>y=[y(t(1)),y(t(2)),...]</literal>. This function can be called
-    with the same optional parameters as the <literal>ode</literal> function
-    (provided <literal>nd</literal> and <literal>stdel</literal> are given in
-    the calling sequence as second and third parameters). In particular
-    integration flags, tolerances can be set. Optional parameters can be set
-    by the <literal>odeoptions</literal> function.</para>
-
-    <para>An example for calling an external routine is given in directory
+   
+    ]]></programlisting>
+    <para>
+    The calling parameters of <literal>f</literal> are fixed: <literal>ycd=f(t,yc,yd,flag)</literal>;
+    this function must return either the derivative of the vector <literal>yc</literal> if
+    <literal>flag=0</literal> or the update of <literal>yd</literal> if <literal>flag=1</literal>.</para>
+    <para><literal>ycd=dot(yc)</literal> must be a vector with same dimension as <literal>yc</literal> 
+    if <literal>flag=0</literal> and <literal>ycd=update(yd)</literal> must be a vector with same 
+    dimension as <literal>yd</literal> if <literal>flag=1</literal>.</para>
+    <para><literal>t</literal> is a vector of instants where the solution <literal>y</literal> is computed.</para>
+    <para><literal>y</literal> is the vector <literal>y=[y(t(1)),y(t(2)),...]</literal>.
+    This function can be called with the same optional parameters as the
+    <literal>ode</literal> function (provided <literal>nd</literal> and <literal>stdel</literal> are given
+    in the calling sequence as second and third parameters).
+    In particular integration flags, tolerances can be set. Optional
+    parameters can be set by the <literal>odeoptions</literal> function.</para>
+    <para>
+    An example for calling an external routine is given in directory 
     <literal>SCIDIR/default/fydot2.f</literal></para>
-
-    <para>External routines can be dynamically linked (see
-    <literal>link</literal>).</para>
+    <para>
+    External routines can be dynamically linked (see <literal>link</literal>).</para>
   </refsection>
-
   <refsection>
     <title>Examples</title>
+    <programlisting role="example"><![CDATA[
 
-    <programlisting role="example"> 
 //Linear system with switching input
 deff('xdu=phis(t,x,u,flag)','if flag==0 then xdu=A*x+B*u; else xdu=1-u;end');
 x0=[1;1];A=[-1,2;-2,-1];B=[1;2];u=0;nu=1;stdel=[1,0];u0=0;t=0:0.05:10;
@@ -202,20 +162,24 @@ norm(xcd-odedc([x0c;x0d],nd,h,t0,t,'fcd1')) // Fast calculation (see fydot2.f)
 plot2d([t',t',t'],xcd(1:3,:)');
 xset("window",2);plot2d2("gnn",[t',t'],xcd(4:5,:)');
 xset("window",0);
-    </programlisting>
+  ]]></programlisting>
   </refsection>
-
   <refsection>
     <title>See Also</title>
-
     <simplelist type="inline">
-      <member><link linkend="ode">ode</link></member>
-
-      <member><link linkend="odeoptions">odeoptions</link></member>
-
-      <member><link linkend="csim">csim</link></member>
-
-      <member><link linkend="external">external</link></member>
+      <member>
+        <link linkend="ode">ode</link>
+      </member>
+      <member>
+        <link linkend="odeoptions">odeoptions</link>
+      </member>
+      <member>
+        <link linkend="csim">csim</link>
+      </member>
+      <member>
+        <link linkend="external">external</link>
+      </member>
     </simplelist>
   </refsection>
 </refentry>
index e49d14a..03f25c4 100644 (file)
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
-<refentry version="5.0-subset Scilab" xml:id="odeoptions" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="en" xml:id="odeoptions">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>odeoptions</refname>
-
-    <refpurpose>set options for ode solvers</refpurpose>
+    <refpurpose> set options for ode solvers</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Calling Sequence</title>
-
     <synopsis>odeoptions()</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Description</title>
+    <para>
+    This function interactively displays a command which
+    should be executed to set various options of ode solvers.
+    The global variable <literal>%ODEOPTIONS</literal> sets the options.</para>
+    <para>
+    CAUTION: the <literal>ode</literal> function checks if this variable
+    exists and in this case it uses it. For using default
+    values you should clear this variable. Note that <literal>odeoptions</literal>
+    does not create this variable. To create it you must execute
+    the command line displayed by <literal>odeoptions</literal>.</para>
+    <para>
+    The variable <literal>%ODEOPTIONS</literal> is a vector with the following elements:</para>
+    <programlisting><![CDATA[
 
-    <para>This function interactively displays a command which should be
-    executed to set various options of ode solvers. The global variable
-    <literal>%ODEOPTIONS</literal> sets the options.</para>
-
-    <para>CAUTION: the <literal>ode</literal> function checks if this variable
-    exists and in this case it uses it. For using default values you should
-    clear this variable. Note that <literal>odeoptions</literal> does not
-    create this variable. To create it you must execute the command line
-    displayed by <literal>odeoptions</literal>.</para>
-
-    <para>The variable <literal>%ODEOPTIONS</literal> is a vector with the
-    following elements:</para>
-
-    <programlisting> 
 [itask,tcrit,h0,hmax,hmin,jactyp,mxstep,maxordn,maxords,ixpr,ml,mu]
-     </programlisting>
-
-    <para>The default value is:</para>
+   
+    ]]></programlisting>
+    <para>
+    The default value is:</para>
+    <programlisting><![CDATA[
 
-    <programlisting> 
 [1,0,0,%inf,0,2,500,12,5,0,-1,-1]
-     </programlisting>
-
-    <para>The meaning of the elements is described below.</para>
-
-    <para><literal>itask</literal> 1 : normal computation at specified times 2
-    : computation at mesh points (given in first row of output of
-    <literal>ode</literal>) 3 : one step at one internal mesh point and return
-    4 : normal computation without overshooting <literal>tcrit</literal> 5 :
-    one step, without passing <literal>tcrit</literal>, and return</para>
-
-    <para><literal>tcrit</literal> assumes <literal>itask</literal> equals 4
-    or 5, described above</para>
-
-    <para><literal>h0</literal> first step tried</para>
-
-    <para><literal>hmax</literal> max step size</para>
-
-    <para><literal>hmin</literal> min step size</para>
-
-    <para><literal>jactype</literal> 0 : functional iterations, no jacobian
-    used (<literal>"adams"</literal> or <literal>"stiff"</literal> only) 1 :
-    user-supplied full jacobian 2 : internally generated full jacobian 3 :
-    internally generated diagonal jacobian (<literal>"adams"</literal> or
-    <literal>"stiff"</literal> only) 4 : user-supplied banded jacobian (see
-    <literal>ml</literal> and <literal>mu</literal> below) 5 : internally
-    generated banded jacobian (<literal>see</literal> ml and
-    <literal>mu</literal> below)</para>
-
-    <para><literal>maxordn</literal> maximum non-stiff order allowed, at most
-    12</para>
-
-    <para><literal>maxords</literal> maximum stiff order allowed, at most
-    5</para>
-
-    <para><literal>ixpr</literal> print level, 0 or 1</para>
-
-    <para><literal>ml</literal>,<literal>mu</literal> If
-    <literal>jactype</literal> equals 4 or 5, <literal>ml</literal> and
-    <literal>mu</literal> are the lower and upper half-bandwidths of the
-    banded jacobian: the band is the i,j's with i-ml &lt;= j &lt;= ny-1. If
-    <literal>jactype</literal> equals 4 the jacobian function must return a
-    matrix J which is ml+mu+1 x ny (where ny=dim of y in ydot=f(t,y)) such
-    that column 1 of J is made of mu zeros followed by df1/dy1, df2/dy1,
-    df3/dy1, ... (1+ml possibly non-zero entries) column 2 is made of mu-1
-    zeros followed by df1/dx2, df2/dx2, etc</para>
+   
+    ]]></programlisting>
+    <para>
+    The meaning of the elements is described below.</para>
+    <para><literal>itask</literal>
+     1 : normal computation at specified times
+     2 : computation at mesh points (given in first row of output of <literal>ode</literal>)
+     3 : one step at one internal mesh point and return
+     4 : normal computation without overshooting <literal>tcrit</literal>
+     5 : one step, without passing <literal>tcrit</literal>, and return</para>
+    <para><literal>tcrit</literal>
+      assumes <literal>itask</literal> equals 4 or 5, described above</para>
+    <para><literal>h0</literal>
+      first step tried</para>
+    <para><literal>hmax</literal>
+      max step size</para>
+    <para><literal>hmin</literal>
+      min step size</para>
+    <para><literal>jactype</literal>
+     0 : functional iterations, no jacobian used (<literal>"adams"</literal> or
+         <literal>"stiff"</literal> only)
+     1 : user-supplied full jacobian
+     2 : internally generated full jacobian
+     3 : internally generated diagonal jacobian (<literal>"adams"</literal> or 
+         <literal>"stiff"</literal> only)
+     4 : user-supplied banded jacobian (see <literal>ml</literal> and <literal>mu</literal> below)
+     5 : internally generated banded jacobian (<literal>see</literal> ml and <literal>mu</literal> below)</para>
+    <para><literal>maxordn</literal> 
+     maximum non-stiff order allowed, at most 12</para>
+    <para><literal>maxords</literal>
+     maximum stiff order allowed, at most 5</para>
+    <para><literal>ixpr</literal> 
+     print level, 0 or 1</para>
+    <para><literal>ml</literal>,<literal>mu</literal>
+     If <literal>jactype</literal> equals 4 or 5, <literal>ml</literal> and <literal>mu</literal> are the lower
+     and upper half-bandwidths of the banded jacobian: the band is the
+     i,j's with i-ml &lt;= j &lt;= ny-1.
+     If <literal>jactype</literal> equals 4 the jacobian function must return
+     a matrix J which is  ml+mu+1 x ny (where ny=dim of y in ydot=f(t,y))
+     such that column 1 of J is made of mu zeros followed by
+     df1/dy1, df2/dy1, df3/dy1, ... (1+ml possibly non-zero entries)
+     column 2 is made of mu-1 zeros followed by df1/dx2, df2/dx2, etc</para>
   </refsection>
-
   <refsection>
     <title>See Also</title>
-
     <simplelist type="inline">
-      <member><link linkend="ode">ode</link></member>
+      <member>
+        <link linkend="ode">ode</link>
+      </member>
     </simplelist>
   </refsection>
 </refentry>
index 920cce4..196574e 100644 (file)
@@ -1,89 +1,68 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<refentry version="5.0-subset Scilab" xml:id="feval" xml:lang="fr"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="fr" xml:id="feval">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>feval</refname>
-
-    <refpurpose>évaluation multiple d'une fonction</refpurpose>
+    <refpurpose> évaluation multiple d'une fonction  </refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Séquence d'appel</title>
-
     <synopsis>[z]=feval(x,y,f)
 [z]=feval(x,f)</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Paramètres</title>
-
     <variablelist>
       <varlistentry>
-        <term>x,y</term>
-
+        <term>x,y  </term>
         <listitem>
-          <para>deux vecteurs</para>
+          <para>deux vecteurs
+</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
-        <term>f</term>
-
+        <term>f  </term>
         <listitem>
-          <para>fonction, ou chaîne de caractères pour les appels Fortran ou
-          C</para>
+          <para>fonction, ou chaîne de caractères pour les appels Fortran ou C
+</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Description</title>
-
-    <para>Evaluation multiple d'une fonction pour un ou deux arguments de type
-    vecteur.</para>
-
+    <para>
+    Evaluation multiple d'une fonction pour un ou deux arguments de type vecteur.
+  </para>
     <variablelist>
       <varlistentry>
         <term>z=feval(x,f)</term>
-
         <listitem>
-          <para>renvoie le vecteur <literal>z</literal> défini par
-          <literal>z(i)=f(x(i)</literal></para>
+          <para>
+    renvoie le vecteur <literal>z</literal> défini par <literal>z(i)=f(x(i)</literal>
+</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>z=feval(x,y,f)</term>
-
         <listitem>
-          <para>renvoie la matrice <literal>z</literal> telle que
-          <literal>z(i,j)=f(x(i),y(j)) </literal></para>
+          <para>
+    renvoie la matrice <literal>z</literal> telle que  <literal>z(i,j)=f(x(i),y(j))
+</literal>  
+</para>
         </listitem>
       </varlistentry>
     </variablelist>
-
-    <para><literal>f</literal> est un "external" (fonction ou routine Fortran
-    ou C) acceptant un ou deux arguments d'entrée supposés réels. Le résultat
-    renvoyé par <literal>f</literal> peut par contre être réel ou complexe.
-    Dans le cas d'un appel Fortran ou C, la fonction <literal> 'f' </literal>
-    doit être définie dans la fonction <literal>ffevalf</literal> (voir dans
-    le dossier <literal>SCIDIR/routines/default</literal>)</para>
+    <para><literal>f</literal> est un "external" (fonction ou routine Fortran ou C) acceptant un ou deux arguments d'entrée supposés réels.
+    Le résultat renvoyé par <literal>f</literal> peut par contre être réel ou complexe. 
+    Dans le cas d'un appel Fortran ou C, la fonction <literal> 'f' </literal> doit être définie dans la fonction <literal>ffevalf</literal> (voir dans le dossier <literal>SCIDIR/routines/default</literal>)
+  </para>
   </refsection>
-
   <refsection>
     <title>Exemples</title>
-
-    <programlisting role="example"> 
+    <programlisting role="example"><![CDATA[
 deff('[z]=f(x,y)','z=x^2+y^2');
 feval(1:10,1:5,f)
 deff('[z]=f(x,y)','z=x+%i*y');
@@ -92,22 +71,26 @@ feval(1:10,1:5,'parab')   // voir le fichier ffeval.f
 feval(1:10,'parab')
 // Pour le lien dynamique (voir l'exemple ftest dans ffeval.f)
 // on peut utiliser la commande "link" 
- </programlisting>
+ ]]></programlisting>
   </refsection>
-
   <refsection>
     <title>Voir Aussi</title>
-
     <simplelist type="inline">
-      <member><link linkend="evstr">evstr</link></member>
-
-      <member><link linkend="horner">horner</link></member>
-
-      <member><link linkend="execstr">execstr</link></member>
-
-      <member><link linkend="external">external</link></member>
-
-      <member><link linkend="link">link</link></member>
+      <member>
+        <link linkend="evstr">evstr</link>
+      </member>
+      <member>
+        <link linkend="horner">horner</link>
+      </member>
+      <member>
+        <link linkend="execstr">execstr</link>
+      </member>
+      <member>
+        <link linkend="external">external</link>
+      </member>
+      <member>
+        <link linkend="link">link</link>
+      </member>
     </simplelist>
   </refsection>
 </refentry>
index b2d7ca3..f44c270 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
-<refentry version="5.0-subset Scilab" xml:id="intg" xml:lang="fr"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="fr" xml:id="intg">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>intg</refname>
-
-    <refpurpose>intégration numérique adaptative</refpurpose>
+    <refpurpose> intégration numérique adaptative  </refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Séquence d'appel</title>
-
     <synopsis>[v,err]=intg(a,b,f [,ea [,er])</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Paramètres</title>
-
     <variablelist>
       <varlistentry>
-        <term>a,b</term>
-
+        <term>a,b  </term>
         <listitem>
-          <para>nombres réels</para>
+          <para>nombres réels
+         </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
-        <term>f</term>
-
+        <term>f  </term>
         <listitem>
-          <para>fonction externe (fonction Scilab ou chaîne de caractères ou
-          liste).</para>
+          <para>fonction externe (fonction Scilab ou chaîne de caractères ou liste).
+         </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
-        <term>ea, er</term>
-
+        <term>ea, er  </term>
         <listitem>
-          <para>nombres réels</para>
+          <para>nombres réels
+         </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
-        <term>ea</term>
-
+        <term>ea  </term>
         <listitem>
-          <para>erreur absolue désirée (1.d-14 par défaut)</para>
+          <para>erreur absolue désirée (1.d-14 par défaut)
+         </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
-        <term>er</term>
-
+        <term>er  </term>
         <listitem>
-          <para>erreur relative (1.d-8 par défaut)</para>
+          <para>erreur relative (1.d-8 par défaut)
+         </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
-        <term>err</term>
-
+        <term>err  </term>
         <listitem>
-          <para>estimation de l'erreur absolue sur le résultat</para>
+          <para>estimation de l'erreur absolue sur le résultat
+         </para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Description</title>
-
-    <para><literal>intg(a,b,f)</literal> approche l'intégrale de
-    <literal>a</literal> à <literal>b</literal> de <literal>f(t)dt</literal>.
-    La fonction <literal>f</literal> doit être continue.</para>
-
-    <para>L'évaluation satisfait si possible <literal>abs(I-v)&lt;=
-    max(ea,er*abs(I))</literal> où I représente la valeur exacte de
-    l'intégrale.</para>
-
+    <para><literal>intg(a,b,f)</literal> approche l'intégrale de <literal>a</literal> à
+      <literal>b</literal> de <literal>f(t)dt</literal>. La fonction <literal>f</literal> doit être
+      continue.</para>
+    <para>L'évaluation satisfait si possible
+      <literal>abs(I-v)&lt;= max(ea,er*abs(I))</literal> où I représente la valeur
+      exacte de l'intégrale. </para>
     <para><literal>f</literal> est une fonction externe :</para>
-
-    <para>Si <literal>f</literal> est une fonction Scilab elle doit avoir la
-    liste d'appel : <literal>y = f(t)</literal></para>
-
-    <para>Si <literal>f</literal> est une liste, cette liste doit avoir la
-    structure suivante : <literal> list(f,x1,x2,...)</literal> où
-    <literal>f</literal> est une fonction Scilab avec la liste d'appel :
-    <literal>f(t,x1,x2,...)</literal>.</para>
-
-    <para>Si <literal>f</literal> est une chaîne de caractères, ce paramètre
-    désigne le nom d'un fonction Fortran ou d'une procédure C ayant une liste
-    d'appel fixée:</para>
-
-    <para>Dans le cas Fortran la liste d'appel doit être: <literal>double
-    precision function f(x)</literal> où <literal>x</literal> est aussi un
-    nombre double precision.</para>
-
-    <para>Dans la cas C la liste d'appel doit être: <literal>double f(double
-    *x)</literal>.</para>
+    <para>Si <literal>f</literal>  est une fonction Scilab elle doit avoir la liste
+      d'appel :
+      <literal>y = f(t)</literal></para>
+    <para>Si <literal>f</literal> est une liste, cette liste doit avoir la structure
+      suivante : <literal> list(f,x1,x2,...)</literal> où <literal>f</literal> est une
+      fonction Scilab avec la liste d'appel : <literal>f(t,x1,x2,...)</literal>.</para>
+    <para>Si <literal>f</literal> est une chaîne de caractères, ce paramètre désigne le
+      nom d'un fonction Fortran ou d'une procédure C ayant une liste d'appel fixée:  </para>
+    <para>Dans le cas Fortran la liste d'appel doit être:
+      <literal>double precision function f(x)</literal> où <literal>x</literal> est aussi
+      un nombre double precision. </para>
+    <para>Dans la cas  C la liste d'appel doit être:
+      <literal>double f(double *x)</literal>. </para>
   </refsection>
-
   <refsection>
     <title>Exemples</title>
-
-    <programlisting role="example"> 
-//External écrit en Scilab
-function y=f(x),y=x*sin(30*x)/sqrt(1-((x/(2*%pi))^2)),endfunction
-exact=-2.5432596188;
-I=intg(0,2*%pi,f)
-abs(exact-I)
-
-//External écrit en Scilab avec un argument
-function y=f1(x,w),y=x*sin(w*x)/sqrt(1-((x/(2*%pi))^2)),endfunction
-I=intg(0,2*%pi,list(f1,30))
-abs(exact-I)
-
-
-// External écrit en Fortran (un compilateur Fortran est nécessaire)
-// Ecriture du code fortran
-F=['      double precision function ffun(x)'
-   '      double precision x,pi'
-   '      pi=3.14159265358979312d+0'
-   '      ffun=x*sin(30.0d+0*x)/sqrt(1.0d+0-(x/(2.0d+0*pi))**2)'
-   '      return'
-   '      end'];
-mputl(F,TMPDIR+'/ffun.f')
-
-// compilation du code Fortran
-l=ilib_for_link('ffun','ffun.o',[],'f',TMPDIR+'/Makefile');
-
-// link incrémental
-link(l,'ffun','f')
-
-// integration de la fonction
-I=intg(0,2*%pi,'ffun')
-abs(exact-I)
-
-// External écrit en C (un compilateur C est nécessaire)
-// Ecriture du code C
-C=['#include &lt;math.h&gt;'
-   'double cfun(double *x)'
-   '{'
-   '  double y,pi=3.14159265358979312;'
-   '  y=*x/(2.0e0*pi);'
-   '  return *x*sin(30.0e0**x)/sqrt(1.0e0-y*y);'
-   '}'];
-mputl(C,TMPDIR+'/cfun.c')
-
-// compilation du code C
-l=ilib_for_link('cfun','cfun.o',[],'c',TMPDIR+'/Makefile');
-
-// incremental linking
-link(l,'cfun','c')
-
-// integration de la fonction
-I=intg(0,2*%pi,'cfun')
-abs(exact-I)
-    </programlisting>
+    <programlisting role="example"><![CDATA[
+    //External écrit en Scilab
+    function y=f(x),y=x*sin(30*x)/sqrt(1-((x/(2*%pi))^2)),endfunction
+    exact=-2.5432596188;
+    I=intg(0,2*%pi,f)
+    abs(exact-I)
+
+    //External écrit en Scilab avec un argument
+    function y=f1(x,w),y=x*sin(w*x)/sqrt(1-((x/(2*%pi))^2)),endfunction
+    I=intg(0,2*%pi,list(f1,30))
+    abs(exact-I)
+
+
+    // External écrit en Fortran (un compilateur Fortran est nécessaire)
+    // Ecriture du code fortran
+    F=['      double precision function ffun(x)'
+    '      double precision x,pi'
+    '      pi=3.14159265358979312d+0'
+    '      ffun=x*sin(30.0d+0*x)/sqrt(1.0d+0-(x/(2.0d+0*pi))**2)'
+    '      return'
+    '      end'];
+    mputl(F,TMPDIR+'/ffun.f')
+    // compilation du code Fortran
+    l=ilib_for_link('ffun','ffun.o',[],'f',TMPDIR+'/Makefile');
+    // link incrémental
+    link(l,'ffun','f')
+    // integration de la fonction
+    I=intg(0,2*%pi,'ffun')
+    abs(exact-I)
+
+    // External écrit en C (un compilateur C est nécessaire)
+    // Ecriture du code C
+    C=['#include <math.h>'
+    'double cfun(double *x)'
+    '{'
+    '  double y,pi=3.14159265358979312;'
+    '  y=*x/(2.0e0*pi);'
+    '  return *x*sin(30.0e0**x)/sqrt(1.0e0-y*y);'
+    '}'];
+    mputl(C,TMPDIR+'/cfun.c')
+    // compilation du code C
+    l=ilib_for_link('cfun','cfun.o',[],'c',TMPDIR+'/Makefile');
+    // incremental linking
+    link(l,'cfun','c')
+    // integration de la fonction
+    I=intg(0,2*%pi,'cfun')
+    abs(exact-I)
+
+    ]]></programlisting>
   </refsection>
-
   <refsection>
     <title>Voir Aussi</title>
-
     <simplelist type="inline">
-      <member><link linkend="intc">intc</link></member>
-
-      <member><link linkend="intl">intl</link></member>
-
-      <member><link linkend="inttrap">inttrap</link></member>
-
-      <member><link linkend="intsplin">intsplin</link></member>
-
-      <member><link linkend="ode">ode</link></member>
+      <member>
+        <link linkend="intc">intc</link>
+      </member>
+      <member>
+        <link linkend="intl">intl</link>
+      </member>
+      <member>
+        <link linkend="inttrap">inttrap</link>
+      </member>
+      <member>
+        <link linkend="intsplin">intsplin</link>
+      </member>
+      <member>
+        <link linkend="ode">ode</link>
+      </member>
     </simplelist>
   </refsection>
-
   <refsection>
     <title>Fonctions Utilisées</title>
-
-    <para>Les programmes correspondants (dqag0.f et dqags.f de quadpack) se
-    trouvent dabs le repertoire routines/integ :</para>
+    <para>Les programmes correspondants (dqag0.f et  dqags.f de quadpack)  se
+      trouvent dabs le repertoire   routines/integ  :</para>
   </refsection>
 </refentry>
index 29e350f..eddec50 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
-<refentry version="5.0-subset Scilab" xml:id="ode" xml:lang="fr"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="fr" xml:id="ode">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>ode</refname>
-
-    <refpurpose>solveur d'équations différentielles ordinaires</refpurpose>
+    <refpurpose> solveur d'équations différentielles ordinaires  </refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Séquence d'appel</title>
-
     <synopsis>y=ode(y0,t0,t,f)
 [y,w,iw]=ode([type],y0,t0,t [,rtol [,atol]],f [,jac] [,w,iw])
 [y,rd,w,iw]=ode("root",y0,t0,t [,rtol [,atol]],f [,jac],ng,g [,w,iw])
 y=ode("discrete",y0,k0,kvect,f)</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Paramètres</title>
-
     <variablelist>
       <varlistentry>
-        <term>y0</term>
-
+        <term>y0  </term>
         <listitem>
-          <para>vecteur ou matrice réelle (conditions initiales).</para>
+          <para>vecteur ou matrice réelle (conditions initiales).
+         </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
-        <term>t0</term>
-
+        <term>t0  </term>
         <listitem>
-          <para>réel (instant initial).</para>
+          <para>réel (instant initial).
+         </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
-        <term>t</term>
-
+        <term>t  </term>
         <listitem>
-          <para>vecteur réel (instants où la solution est renvoyée).</para>
+          <para>vecteur réel (instants où la solution est renvoyée).
+         </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
-        <term>f</term>
-
+        <term>f  </term>
         <listitem>
-          <para>fonction externe (fonction Scilab ou chaîne de caractères ou
-          liste).</para>
+          <para>fonction externe (fonction Scilab ou chaîne de caractères ou liste).
+         </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
-        <term>type</term>
-
+        <term>type  </term>
         <listitem>
-          <para>une des chaînes de caractères : <literal>"adams" "stiff" "rk"
-          "rkf" "fix" "discrete" "roots"</literal></para>
+          <para>une des chaînes de caractères : <literal>"adams" "stiff" "rk" "rkf" "fix" "discrete" "roots"</literal>
+         </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
-        <term>rtol,atol</term>
-
+        <term>rtol,atol  </term>
         <listitem>
-          <para>constantes ou vecteurs réels de même taille que
-          <literal>y</literal>.</para>
+          <para>constantes ou vecteurs réels de même taille que <literal>y</literal>.
+         </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
-        <term>jac</term>
-
+        <term>jac  </term>
         <listitem>
-          <para>fonction externe (fonction Scilab, chaîne de caractères ou
-          liste).</para>
+          <para>fonction externe (fonction Scilab, chaîne de caractères ou liste).
+         </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
-        <term>w,iw</term>
-
+        <term>w,iw  </term>
         <listitem>
-          <para>vecteurs réels</para>
+          <para>vecteurs réels
+         </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
-        <term>ng</term>
-
+        <term>ng  </term>
         <listitem>
-          <para>entier</para>
+          <para>entier
+         </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
-        <term>g</term>
-
+        <term>g  </term>
         <listitem>
-          <para>fonction externe (fonction Scilab, chaîne de caractères ou
-          liste).</para>
+          <para>fonction externe (fonction Scilab, chaîne de caractères ou liste).
+         </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
-        <term>k0</term>
-
+        <term>k0  </term>
         <listitem>
-          <para>entier (instant initial). kvect : vecteur d'entiers</para>
+          <para>entier (instant initial). kvect : vecteur d'entiers
+         </para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Description</title>
-
-    <para><literal>ode</literal> est la fonction utilisée pour approcher la
-    solution d'une équation différentielle ordinaire (EDO) explicite du
-    premier ordre en temps, définie par : dy/dt=f(t,y) , y(t0)=y0. Il s'agit
-    d'une interface vers diverses librairies, en particulier ODEPACK. Le type
-    du problème et la méthode utilisée dépendent de la valeur du premier
-    argument optionnel <literal>type</literal> qui peut être égal à :</para>
-
+    <para><literal>ode</literal> est la fonction utilisée pour approcher la solution
+      d'une équation différentielle ordinaire (EDO) explicite du premier
+      ordre en temps, définie par :
+      dy/dt=f(t,y) , y(t0)=y0.
+      Il s'agit d'une interface vers diverses librairies, en particulier ODEPACK.
+      Le type du problème et la méthode utilisée dépendent de la valeur du
+      premier argument optionnel <literal>type</literal> qui peut être égal à :
+    </para>
     <variablelist>
       <varlistentry>
         <term>&lt;aucun&gt; :</term>
-
         <listitem>
-          <para>le solveur <literal>lsoda</literal> du package ODEPACK est
-          utilisé par défaut. Il choisit automatiquement entre un schéma
-          prédicteur-correcteur d'Adams et un schéma adapté au systèmes raides
-          (stiff) de type "Backward Differentiation Formula" (BDF).
-          Initialement le schéma adapté aux système non raides est choisi puis
-          la méthode adaptée est ensuite choisie dynamiquement.</para>
+          <para>
+         le solveur <literal>lsoda</literal> du package ODEPACK est utilisé par défaut. Il choisit automatiquement entre un schéma prédicteur-correcteur d'Adams et un schéma adapté au systèmes raides (stiff) de type "Backward Differentiation Formula" (BDF). Initialement le schéma adapté aux système non raides est choisi puis la méthode adaptée est ensuite choisie dynamiquement. 
+       </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>"adams" :</term>
-
         <listitem>
-          <para>Problèmes non raides. Le solveur <literal>lsode</literal> du
-          package ODEPACK est utilisé (schéma d'Adams).</para>
+          <para>
+         Problèmes non raides. Le solveur <literal>lsode</literal> du package ODEPACK est utilisé (schéma d'Adams).
+       </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>"stiff" :</term>
-
         <listitem>
-          <para>Pour les systèmes raides. Le solveur <literal>lsode</literal>
-          du package ODEPACK est utilisé avec le schéma BDF.</para>
+          <para>
+         Pour les systèmes raides. Le solveur <literal>lsode</literal> du package ODEPACK est utilisé avec le schéma BDF.
+       </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>"rk" :</term>
-
         <listitem>
-          <para>Schéma de Runge-Kutta adaptatif d'ordre 4 (RK4).</para>
+          <para>
+         Schéma de Runge-Kutta adaptatif d'ordre 4 (RK4).
+       </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>"rkf" :</term>
-
         <listitem>
-          <para>Formules de Shampine et Watts basées sur les paires de
-          Runge-Kutta Fehlberg d'ordre 4 et 5 (RKF45). Bien pour les problèmes
-          non raides ou moyennement raides, lorsque le calcul du second membre
-          n'est pas trop coûteux. Cette méthode est à éviter si l'on recherche
-          une très grande précision.</para>
+          <para>
+         Formules de Shampine et Watts basées sur les paires de Runge-Kutta Fehlberg d'ordre 4 et 5 (RKF45). Bien pour les problèmes non raides ou moyennement raides, lorsque le calcul du second membre n'est pas trop coûteux. Cette méthode est à éviter si l'on recherche une très grande précision.
+       </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>"fix":</term>
-
         <listitem>
-          <para>Identique à "rkf", mais l'interface est simplifiée, i.e.
-          uniquement <literal>rtol</literal> et <literal>atol</literal> sont
-          communiqués au solveur.</para>
+          <para>
+         Identique à "rkf", mais l'interface est simplifiée, i.e. uniquement <literal>rtol</literal> et <literal>atol</literal>  sont communiqués au solveur. 
+       </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>"root":</term>
-
         <listitem>
-          <para>Solveur d'EDO avec recherche de racines. Le solveur
-          <literal>lsodar</literal> du package ODEPACK est utilisé. C'est une
-          variante de <literal>lsoda</literal> permettant la recherche d'une
-          racine d'une fonction vectorielle donnée. Voir ode_root pour plus de
-          détails.</para>
+          <para>
+         Solveur d'EDO avec recherche de racines.  Le solveur <literal>lsodar</literal> du package ODEPACK est utilisé. C'est une variante de <literal>lsoda</literal> permettant la recherche d'une racine d'une fonction vectorielle donnée. Voir ode_root pour plus de détails.
+       </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>"discrete":</term>
-
         <listitem>
-          <para>Simulation en temps discret. Voir ode_discrete pour plus de
-          détails.</para>
+          <para>
+         Simulation en temps discret. Voir ode_discrete pour plus de détails.
+       </para>
         </listitem>
       </varlistentry>
     </variablelist>
-
-    <para>Ici on ne décrit l'usage de <literal>ode</literal> que pour des EDO
-    explicites.</para>
-
+    <para>
+      Ici on ne décrit l'usage de <literal>ode</literal> que pour des EDO explicites.
+    </para>
     <itemizedlist>
       <listitem>
         <para>L'appel le plus simple de <literal>ode</literal> est du type :
-        <literal>y=ode(y0,t0,t,f)</literal> où <literal>y0</literal> est le
-        vecteur des conditions initiales, <literal>t0</literal> est le temps
-        initial, et <literal>t</literal> est le vecteur des instants où l'on
-        veut une approximation de la solution. <literal>y</literal> est
-        calculée et <literal>y</literal> est la matrice
-        <literal>y=[y(t(1)),y(t(2)),...]</literal>.</para>
-
-        <para>Le paramètre d'entrée <literal>f</literal> de
-        <literal>ode</literal> défini le membre de droite de léquation
-        différentielle du premier ordre dy/dt=f(t,y). C'est un external qui
-        peut être :</para>
-
+      <literal>y=ode(y0,t0,t,f)</literal>
+      où <literal>y0</literal> est le vecteur des conditions initiales, <literal>t0</literal> est le temps initial, et <literal>t</literal> est le vecteur des instants où l'on veut une approximation de la solution. 
+      <literal>y</literal> est calculée et <literal>y</literal>  est la matrice 
+      <literal>y=[y(t(1)),y(t(2)),...]</literal>.    </para>
+        <para>
+      Le paramètre d'entrée <literal>f</literal> de <literal>ode</literal> défini le
+         membre de droite de léquation différentielle du premier ordre
+         dy/dt=f(t,y). C'est un external qui peut être :
+    </para>
         <itemizedlist>
           <listitem>
-            <para>Soit une fonction Scilab, sa syntaxe doit être <literal>ydot
-            = f(t,y)</literal> où <literal>t</literal> est un scalaire (le
-            temps), <literal>y</literal> un vecteur (l'état). Cette fonction
-            renvoie le second membre de l'équation différentielle
-            dy/dt=f(t,y).</para>
+            <para>
+             Soit  une fonction Scilab, sa syntaxe doit être  <literal>ydot = f(t,y)</literal> 
+             où <literal>t</literal> est un scalaire (le temps), <literal>y</literal> un vecteur
+             (l'état).
+             Cette fonction renvoie le second membre de l'équation
+             différentielle dy/dt=f(t,y).
+           </para>
           </listitem>
-
           <listitem>
-            <para>Soit une chaîne de caractères, elle désigne le nom d'une
-            subroutine Fortran ou une procédure C, i.e. si
-            <literal>ode(y0,t0,t,"fex")</literal> est la commande, alors la
-            procedure <literal>fex</literal> est appelée.</para>
-
-            <para>Si c'est une subroutine Fortran, sa liste d'appel doit
-            être</para>
-
-            <programlisting> 
-subroutine fex(n,t,y,ydot) 
-integer n
-double precision t,y(*),ydot(*)
- </programlisting>
-
-            <para>Si c'est une fonction C son prototype doit être:</para>
-
-            <programlisting> 
-void fex(int *n,double *t,double *y,double *ydot)
-       </programlisting>
-
-            <para>Cet external peut être compilé par l'utilitaire <link
-            linkend="ilib_for_link">ilib_for_link</link> et chargé
-            dynamiquement par la fonction <link
-            linkend="link">link</link>.</para>
+            <para>
+             Soit  une chaîne de caractères, elle désigne le nom d'une subroutine Fortran
+             ou une procédure C, i.e. si <literal>ode(y0,t0,t,"fex")</literal> est la
+             commande, alors la procedure <literal>fex</literal> est appelée.  </para>
+            <para>Si c'est une subroutine Fortran, sa liste d'appel doit être</para>
+            <programlisting><![CDATA[
+             subroutine fex(n,t,y,ydot) 
+             integer n
+             double precision t,y(*),ydot(*)
+             ]]></programlisting>
+            <para> Si c'est une fonction C son prototype doit être:</para>
+            <programlisting><![CDATA[
+             void fex(int *n,double *t,double *y,double *ydot)
+             ]]></programlisting>
+            <para>Cet external peut être compilé par l'utilitaire
+             <link linkend="ilib_for_link">ilib_for_link</link> et chargé dynamiquement par la
+             fonction <link linkend="link">link</link>. </para>
           </listitem>
-
           <listitem>
-            <para>Soit une liste avec la structure suivante
-            <literal>list(vrai_f,u1,u2,...un)</literal> où
-            <literal>vrai_f</literal> est une fonction avec la syntaxe
-            <literal>ydot = vrai_f(t,y,u1,u2,...,un)</literal></para>
-
-            <para>Cette syntaxe permet de passer des paramètres sous forme
-            d'arguments supplémentaires de <literal>vrai_f</literal>.</para>
+            <para>
+             Soit une liste  avec la structure suivante <literal>list(vrai_f,u1,u2,...un)</literal>
+           où <literal>vrai_f</literal> est une fonction avec la syntaxe 
+               <literal>ydot = vrai_f(t,y,u1,u2,...,un)</literal></para>
+            <para>
+             Cette syntaxe permet de passer des paramètres sous forme
+             d'arguments supplémentaires de <literal>vrai_f</literal>.
+
+           </para>
           </listitem>
         </itemizedlist>
-
-        <para>La fonction <literal>f</literal> peut renvoyer une matrice
-        <literal>p x q</literal> au lieu d'un vecteur. Dans ce cas, on résout
-        le système d'EDO <literal>n=p+q</literal>
-        <literal>dY/dt=F(t,Y)</literal> où <literal>Y</literal> est une
-        matrice <literal>p x q</literal>. La condition initiale
-        <literal>Y0</literal> doit aussi être une matrice <literal>p x
-        q</literal> matrix et le résultat renvoyé par <literal>ode</literal>
-        est la matrice: <literal>p x q(T+1)</literal> égale à
-        <literal>[Y(t_0),Y(t_1),...,Y(t_T)]</literal>.</para>
+        <para>
+         La fonction <literal>f</literal> peut renvoyer une matrice <literal>p x q</literal> au lieu d'un vecteur. 
+         Dans ce cas, on résout le système d'EDO <literal>n=p+q</literal> 
+         <literal>dY/dt=F(t,Y)</literal> où <literal>Y</literal> est une matrice <literal>p x q</literal>.
+         La condition initiale <literal>Y0</literal> doit aussi être une matrice
+         <literal>p x q</literal> matrix et le résultat renvoyé par <literal>ode</literal>
+         est la matrice:  <literal>p x q(T+1)</literal> égale à <literal>[Y(t_0),Y(t_1),...,Y(t_T)]</literal>.
+       </para>
       </listitem>
-
       <listitem>
-        <para>Des paramètres optionnels contrôlent la tolérance du schéma :
-        <literal>rtol</literal> et <literal>atol</literal> sont des valeurs
-        seuil sur les erreurs estimées (relative et absolue) L'erreur estimée
-        sur <literal>y(i)</literal> est
-        <literal>rtol(i)*abs(y(i))+atol(i)</literal></para>
-
-        <para>Si <literal>rtol</literal> et/ou <literal>atol</literal> sont
-        des constantes <literal>rtol(i)</literal> et/ou
-        <literal>atol(i)</literal> prennent ces valeurs. Les valeurs par
-        défaut de <literal>rtol</literal> et <literal>atol</literal> sont
-        respectivement <literal>rtol=1.d-5</literal> et
-        <literal>atol=1.d-7</literal> pour la plupart des solveurs et
-        <literal>rtol=1.d-3</literal> et <literal>atol=1.d-4</literal> pour
-        <literal>"rfk"</literal> et <literal>"fix"</literal>.</para>
+        <para>
+         Des paramètres optionnels contrôlent la tolérance du schéma :
+         <literal>rtol</literal> et <literal>atol</literal> 
+         sont des valeurs seuil sur les erreurs estimées (relative et absolue) 
+         L'erreur estimée sur <literal>y(i)</literal> est <literal>rtol(i)*abs(y(i))+atol(i)</literal>
+       </para>
+        <para>
+         Si <literal>rtol</literal> et/ou <literal>atol</literal> sont des constantes <literal>rtol(i)</literal> et/ou 
+         <literal>atol(i)</literal> prennent ces valeurs. Les valeurs par défaut de
+         <literal>rtol</literal> et <literal>atol</literal>
+         sont respectivement <literal>rtol=1.d-5</literal> et
+         <literal>atol=1.d-7</literal> pour la plupart des solveurs et
+         <literal>rtol=1.d-3</literal> et <literal>atol=1.d-4</literal> pour
+         <literal>"rfk"</literal> et <literal>"fix"</literal>.
+       </para>
       </listitem>
-
       <listitem>
-        <para>Pour les problèmes raides, il est recommandé de fournir la
-        jacobienne du second membre sous forme de l'argument optionnel
-        <literal>jac</literal>. Le paramètre <literal>jac</literal> de
-        <literal>ode</literal> est par exemple une fonction Scilab, dont la
-        syntaxe est imposée, ou le nom d'une subroutine Fortran ou C (chaîne
-        de caractères) ou une liste.</para>
-
-        <para>Si <literal>jac</literal> est une fonction Scilab sa syntaxe
-        doit être <literal>J=jac(t,y)</literal></para>
-
-        <para>où <literal>t</literal> est un scalaire (le temps) et
-        <literal>y</literal> un vecteur (l'état). La matrice
-        <literal>J</literal> doit renvoyer df/dx i.e. <literal>J(k,i) = dfk
-        /dxi</literal> avec <literal>fk</literal> = k-ième composante de
-        f.</para>
-
-        <para>Si <literal>f</literal> est une chaîne de caractères, elle
-        désigne le nom d'une subroutine Fortran ou C.</para>
-
-        <para>En Fortran, Cette routine doit avoir la liste d'appel suivante
-        :</para>
-
-        <programlisting> 
-subroutine fex(n,t,y,ml,mu,J,nrpd) 
-integer n,ml,mu,nrpd
-double precision t,y(*),J(*)
-       </programlisting>
-
-        <para>Si c'est une fonction C son prototype doit être:</para>
-
-        <programlisting> 
-void fex(int *n,double *t,double *y,int *ml,int *mu,double *J,int *nrpd,)
-       </programlisting>
-
-        <para>Dans la plupart des cas il n'est pas nécessaire d'utiliser
-        <literal>ml</literal>, <literal>mu</literal> et
-        <literal>nrpd</literal>, qui sont relatif aà la possibilité de
-        stockage "bande" du Jacobien</para>
-
-        <para>Si <literal>jac</literal> est une liste, les mêmes conventions
-        que pour <literal>f</literal> s'appliquent.</para>
+        <para>
+         Pour les problèmes raides, il est recommandé de fournir la jacobienne du second membre
+         sous forme de l'argument optionnel <literal>jac</literal>. Le
+         paramètre <literal>jac</literal> de <literal>ode</literal> est par exemple une
+         fonction Scilab, dont la syntaxe est imposée, ou le nom d'une
+         subroutine Fortran ou C (chaîne de caractères) ou une liste.
+       </para>
+        <para>
+         Si <literal>jac</literal> est une fonction Scilab sa syntaxe doit être
+         <literal>J=jac(t,y)</literal> 
+       </para>
+        <para>
+         où <literal>t</literal> est un scalaire (le temps) et <literal>y</literal> un vecteur (l'état).
+         La matrice <literal>J</literal> doit renvoyer df/dx i.e. 
+         <literal>J(k,i) = dfk /dxi</literal> avec <literal>fk</literal> = k-ième composante de f.
+       </para>
+        <para>
+         Si <literal>f</literal> est une chaîne de caractères, elle désigne le nom d'une subroutine Fortran
+         ou C. </para>
+        <para>En Fortran, Cette routine doit avoir la liste d'appel suivante : </para>
+        <programlisting><![CDATA[
+             subroutine fex(n,t,y,ml,mu,J,nrpd) 
+             integer n,ml,mu,nrpd
+             double precision t,y(*),J(*)
+             ]]></programlisting>
+        <para> Si c'est une fonction C son prototype doit être:</para>
+        <programlisting><![CDATA[
+             void fex(int *n,double *t,double *y,int *ml,int *mu,double *J,int *nrpd,)
+             ]]></programlisting>
+        <para> Dans la plupart des cas il n'est pas nécessaire
+         d'utiliser <literal>ml</literal>, <literal>mu</literal> et
+         <literal>nrpd</literal>, qui sont relatif aà la possibilité de stockage
+         "bande" du Jacobien </para>
+        <para>
+      Si <literal>jac</literal> est une liste, les mêmes conventions que pour <literal>f</literal> s'appliquent.
+    </para>
       </listitem>
-
       <listitem>
-        <para>Les arguments optionnels <literal>w</literal> et
-        <literal>iw</literal> sont des vecteurs ou le solveur stocke des
-        informations sur son état(voir <link
-        linkend="ode_optional_output">ode_optional_output</link> pour plus de
-        détails) . Lorsque ces paramêtres sont utilisés comme argument
-        d'entrée, ils permettent de redémarrer l'intégration au point où elle
-        s'était arrêtée à la sortie d'un apple précédent à
-        <literal>ode</literal>.</para>
+        <para>
+      Les arguments optionnels <literal>w</literal> et <literal>iw</literal> sont 
+      des vecteurs ou le solveur stocke des informations sur son état(voir
+         <link linkend="ode_optional_output">ode_optional_output</link> pour plus de détails) . Lorsque ces
+         paramêtres sont utilisés comme argument d'entrée, ils permettent de
+         redémarrer l'intégration au point où elle
+         s'était arrêtée à la sortie d'un apple précédent à  <literal>ode</literal>.
+    </para>
       </listitem>
-
       <listitem>
-        <para>Plus d'options peuvent être passées aux solveurs d'ODEPACK en
-        utilisant la variable <literal>%ODEOPTIONS</literal>. Voir <link
-        linkend="odeoptions">odeoptions</link>.</para>
+        <para>
+      Plus d'options peuvent être passées aux solveurs d'ODEPACK en utilisant la variable
+      <literal>%ODEOPTIONS</literal>. Voir <link linkend="odeoptions">odeoptions</link>.
+    </para>
       </listitem>
     </itemizedlist>
   </refsection>
-
   <refsection>
     <title>Exemples</title>
-
-    <programlisting role="example"> 
-// ---------- EDO Simple  (external : fonction Scilab)
-// dy/dt=y^2-y sin(t)+cos(t), y(0)=0
-function ydot=f(t,y),ydot=y^2-y*sin(t)+cos(t),endfunction
-y0=0;t0=0;t=0:0.1:%pi;
-y=ode(y0,t0,t,f)
-plot(t,y)
-
-// ---------- EDO Simple  (external : code C)
-ccode=['#include &lt;math.h&gt;'
-       'void myode(int *n,double *t,double *y,double *ydot)'
-       '{'
-       '  ydot[0]=y[0]*y[0]-y[0]*sin(*t)+cos(*t);'
-       '}']
-mputl(ccode,TMPDIR+'/myode.c') //create the C file
-ilib_for_link('myode','myode.o',[],'c',TMPDIR+'/Makefile',TMPDIR+'/loader.sce');//compile
-exec(TMPDIR+'/loader.sce') //incremental linking
-y0=0;t0=0;t=0:0.1:%pi;
-y=ode(y0,t0,t,'myode');
-
-// ---------- Simulation de dx/dt = A x(t) + B u(t) avec u(t)=sin(omega*t),
-// x0=[1;0]
-// solution x(t) desired at t=0.1, 0.2, 0.5 ,1.
-// A and u function are passed to RHS function in a list. 
-// B and omega are passed as global variables
-function xdot=linear(t,x,A,u),xdot=A*x+B*u(t),endfunction
-function ut=u(t),ut=sin(omega*t),endfunction
-A=[1 1;0 2];B=[1;1];omega=5;
-ode([1;0],0,[0.1,0.2,0.5,1],list(linear,A,u))
-
-// ----------Integration de l'équation différentielle de Riccati (état matriciel)
-// Xdot=A'*X + X*A - X'*B*X + C , X(0)=Identity
-// Solution at t=[1,2] 
-function Xdot=ric(t,X),Xdot=A'*X+X*A-X'*B*X+C,endfunction  
-A=[1,1;0,2]; B=[1,0;0,1]; C=[1,0;0,1];
-t0=0;t=0:0.1:%pi;
-X=ode(eye(A),0,t,ric)
-
-// ---------- Calcul de exp(A)  (état matriciel)
-A=[1,1;0,2];
-function xdot=f(t,x),xdot=A*x;,endfunction 
-ode(eye(A),0,1,f)
-ode("adams",eye(A),0,1,f)
-
-// ----------  Calcul de exp(A)  (état matriciel, cas raide, jacobien fourni)
-A=[10,0;0,-1];
-function xdot=f(t,x),xdot=A*x,endfunction 
-function J=Jacobian(t,y),J=A,endfunction 
-ode("stiff",[0;1],0,1,f,Jacobian)
-     </programlisting>
+    <programlisting role="example"><![CDATA[
+  
+    // ---------- EDO Simple  (external : fonction Scilab)
+    // dy/dt=y^2-y sin(t)+cos(t), y(0)=0
+    function ydot=f(t,y),ydot=y^2-y*sin(t)+cos(t),endfunction
+    y0=0;t0=0;t=0:0.1:%pi;
+    y=ode(y0,t0,t,f)
+    plot(t,y)
+
+    // ---------- EDO Simple  (external : code C)
+    ccode=['#include <math.h>'
+          'void myode(int *n,double *t,double *y,double *ydot)'
+          '{'
+          '  ydot[0]=y[0]*y[0]-y[0]*sin(*t)+cos(*t);'
+          '}']
+    mputl(ccode,TMPDIR+'/myode.c') //create the C file
+    ilib_for_link('myode','myode.o',[],'c',TMPDIR+'/Makefile',TMPDIR+'/loader.sce');//compile
+    exec(TMPDIR+'/loader.sce') //incremental linking
+    y0=0;t0=0;t=0:0.1:%pi;
+    y=ode(y0,t0,t,'myode');
+       
+    // ---------- Simulation de dx/dt = A x(t) + B u(t) avec u(t)=sin(omega*t),
+    // x0=[1;0]
+    // solution x(t) desired at t=0.1, 0.2, 0.5 ,1.
+    // A and u function are passed to RHS function in a list. 
+    // B and omega are passed as global variables
+    function xdot=linear(t,x,A,u),xdot=A*x+B*u(t),endfunction
+    function ut=u(t),ut=sin(omega*t),endfunction
+    A=[1 1;0 2];B=[1;1];omega=5;
+    ode([1;0],0,[0.1,0.2,0.5,1],list(linear,A,u))
+
+    // ----------Integration de l'équation différentielle de Riccati (état matriciel)
+    // Xdot=A'*X + X*A - X'*B*X + C , X(0)=Identity
+    // Solution at t=[1,2] 
+    function Xdot=ric(t,X),Xdot=A'*X+X*A-X'*B*X+C,endfunction  
+    A=[1,1;0,2]; B=[1,0;0,1]; C=[1,0;0,1];
+    t0=0;t=0:0.1:%pi;
+    X=ode(eye(A),0,t,ric)
+    //
+    // ---------- Calcul de exp(A)  (état matriciel)
+    A=[1,1;0,2];
+    function xdot=f(t,x),xdot=A*x;,endfunction 
+    ode(eye(A),0,1,f)
+    ode("adams",eye(A),0,1,f)
+
+    // ----------  Calcul de exp(A)  (état matriciel, cas raide, jacobien fourni)
+    A=[10,0;0,-1];
+    function xdot=f(t,x),xdot=A*x,endfunction 
+    function J=Jacobian(t,y),J=A,endfunction 
+    ode("stiff",[0;1],0,1,f,Jacobian)
+    ]]></programlisting>
   </refsection>
-
   <refsection>
     <title>Voir Aussi</title>
-
     <simplelist type="inline">
-      <member><link linkend="ode_discrete">ode_discrete</link></member>
-
-      <member><link linkend="ode_root">ode_root</link></member>
-
-      <member><link linkend="dassl">dassl</link></member>
-
-      <member><link linkend="impl">impl</link></member>
-
-      <member><link linkend="odedc">odedc</link></member>
-
-      <member><link linkend="odeoptions">odeoptions</link></member>
-
-      <member><link linkend="csim">csim</link></member>
-
-      <member><link linkend="ltitr">ltitr</link></member>
-
-      <member><link linkend="rtitr">rtitr</link></member>
+      <member>
+        <link linkend="ode_discrete">ode_discrete</link>
+      </member>
+      <member>
+        <link linkend="ode_root">ode_root</link>
+      </member>
+      <member>
+        <link linkend="dassl">dassl</link>
+      </member>
+      <member>
+        <link linkend="impl">impl</link>
+      </member>
+      <member>
+        <link linkend="odedc">odedc</link>
+      </member>
+      <member>
+        <link linkend="odeoptions">odeoptions</link>
+      </member>
+      <member>
+        <link linkend="csim">csim</link>
+      </member>
+      <member>
+        <link linkend="ltitr">ltitr</link>
+      </member>
+      <member>
+        <link linkend="rtitr">rtitr</link>
+      </member>
     </simplelist>
   </refsection>
-
   <refsection>
     <title>Auteurs</title>
-
     <variablelist>
       <varlistentry>
         <term>Alan C. Hindmarsh</term>
-
         <listitem>
-          <para>mathematics and statistics division, l-316 livermore, ca
-          94550.19</para>
+          <para>,  mathematics and statistics division, l-316
+      livermore, ca 94550.19</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Bibliographie</title>
-
-    <para>Alan C. Hindmarsh, lsode and lsodi, two new initial value ordinary
-    differential equation solvers, acm-signum newsletter, vol. 15, no. 4
-    (1980), pp. 10-11.</para>
+    <para>Alan C. Hindmarsh,  lsode and lsodi, two new initial value
+    ordinary differential equation solvers,
+    acm-signum newsletter, vol. 15, no. 4 (1980), pp. 10-11.</para>
   </refsection>
-
   <refsection>
     <title>Fonctions Utilisées</title>
-
-    <para>Les sous programmes associés se trouvent dans le repertoire
-    routines/integ: lsode.f lsoda.f lsodar.f</para>
+    <para>Les sous programmes associés se trouvent dans le repertoire  routines/integ:
+      lsode.f lsoda.f lsodar.f
+    </para>
   </refsection>
 </refentry>
index 367f118..d5b9b04 100644 (file)
@@ -61,7 +61,7 @@
     <title>Descrição</title>
 
     <para>Múltipla avaliação de uma função para um ou dois argumentos do tipo
-    vetor:</para>
+    vetor: </para>
 
     <variablelist>
       <varlistentry>
@@ -94,7 +94,8 @@
   <refsection>
     <title>Exemplos</title>
 
-    <programlisting role="example"> 
+    <programlisting role="example">
+
 deff('[z]=f(x,y)','z=x^2+y^2');
 feval(1:10,1:5,f)
 deff('[z]=f(x,y)','z=x+%i*y');
@@ -104,7 +105,8 @@ feval(1:10,'parab')
 // Para link dinâmico (ver exemplo ftest em ffeval.f)
 // você pode usar o comando link (os parâmetros dependem da máquina):
 // unix('make ftest.o');link('ftest.o','ftest); feval(1:10,1:5,'ftest')
-   </programlisting>
+  </programlisting>
   </refsection>
 
   <refsection>