update of localization ... probably the most borring and not interesting work I have...
Sylvestre Ledru [Tue, 27 May 2008 16:49:26 +0000 (16:49 +0000)]
58 files changed:
scilab/modules/cacsd/macros/abcd.sci
scilab/modules/cacsd/macros/abinv.sci
scilab/modules/cacsd/macros/arma2p.sci
scilab/modules/cacsd/macros/armac.sci
scilab/modules/cacsd/macros/armax.sci
scilab/modules/cacsd/macros/armax1.sci
scilab/modules/cacsd/macros/arsimul.sci
scilab/modules/cacsd/macros/augment.sci
scilab/modules/cacsd/macros/bloc2exp.sci
scilab/modules/cacsd/macros/bloc2ss.sci
scilab/modules/cacsd/macros/cainv.sci
scilab/modules/cacsd/macros/calfrq.sci
scilab/modules/cacsd/macros/cont_mat.sci
scilab/modules/cacsd/macros/copfac.sci
scilab/modules/cacsd/macros/csim.sci
scilab/modules/cacsd/macros/des2tf.sci
scilab/modules/cacsd/macros/dhnorm.sci
scilab/modules/cacsd/macros/dscr.sci
scilab/modules/cacsd/macros/equil1.sci
scilab/modules/cacsd/macros/findAC.sci
scilab/modules/cacsd/macros/findBDK.sci
scilab/modules/cacsd/macros/findx0BD.sci
scilab/modules/cacsd/macros/flts.sci
scilab/modules/cacsd/macros/gamitg.sci
scilab/modules/cacsd/macros/gfrancis.sci
scilab/modules/cacsd/macros/gtild.sci
scilab/modules/cacsd/macros/h2norm.sci
scilab/modules/cacsd/macros/h_inf.sci
scilab/modules/cacsd/macros/h_inf_st.sci
scilab/modules/cacsd/macros/h_norm.sci
scilab/modules/cacsd/macros/hankelsv.sci
scilab/modules/cacsd/macros/inistate.sci
scilab/modules/cacsd/macros/invsyslin.sci
scilab/modules/cacsd/macros/kpure.sci
scilab/modules/cacsd/macros/krac2.sci
scilab/modules/cacsd/macros/leqr.sci
scilab/modules/cacsd/macros/linf.sci
scilab/modules/cacsd/macros/lqg.sci
scilab/modules/cacsd/macros/lqg2stan.sci
scilab/modules/cacsd/macros/lyap.sci
scilab/modules/cacsd/macros/minreal.sci
scilab/modules/cacsd/macros/minss.sci
scilab/modules/cacsd/macros/narsimul.sci
scilab/modules/cacsd/macros/nehari.sci
scilab/modules/cacsd/macros/obsv_mat.sci
scilab/modules/cacsd/macros/reglin.sci
scilab/modules/cacsd/macros/repfreq.sci
scilab/modules/cacsd/macros/ric_desc.sci
scilab/modules/cacsd/macros/sm2ss.sci
scilab/modules/cacsd/macros/ss2des.sci
scilab/modules/cacsd/macros/ss2tf.sci
scilab/modules/cacsd/macros/stabil.sci
scilab/modules/cacsd/macros/svplot.sci
scilab/modules/cacsd/macros/sylv.sci
scilab/modules/cacsd/macros/sysconv.sci
scilab/modules/cacsd/macros/syslin.sci
scilab/modules/cacsd/macros/time_id.sci
scilab/modules/cacsd/macros/ui_observer.sci

index 832790b..d35eba7 100644 (file)
@@ -11,7 +11,7 @@ function [A,B,C,D]=abcd(sl)
 // Retrieves [A,B,C,D] matrices from linear system sl
 
 if type(sl)<>16 then
-  error(msprintf(gettext("%s: Wrong type for first input argument: Typed list expected.\n"),"abcd"))
+  error(msprintf(gettext("%s: Wrong type for input argument #%d: Typed list expected.\n"),"abcd",1))
   return;
 end
 typis=sl(1);
index d67fd22..dc3825e 100644 (file)
@@ -51,10 +51,10 @@ if RHS==1 then Alfa=-1;Beta=-1;flag='ge';end
 if RHS==2 then Beta=Alfa;flag='ge';end
 if RHS==3 then flag='ge';end
 if RHS==4 then 
-if type(flag)~=10 then error(msprintf(gettext("%s: Wrong type for fourth input argument: String expected.\n"),"abinv"));end
+if type(flag)~=10 then error(msprintf(gettext("%s: Wrong type for input argument #%d: String expected.\n"),"abinv",4));end
 end
 timedomain=Sl.dt;
-if timedomain==[] then warning(msprintf(gettext("%s: Time domain not given => Sl assumed continuous (default).\n"),"abinv"));timedomain='c';end
+if timedomain==[] then    warning(msprintf(gettext("%s: Time domain not defined: Assumed continuous.\n."),"abinv"));timedomain='c';end
 [A,B,C,D]=abcd(Sl);
 [nx,nu]=size(B);
 Vi=eye(A);
@@ -121,7 +121,7 @@ A11=A11+B1bar*F1bar;  //add B1bar*F1bar is not necessary.
 if B1t ~= [] then
        voidB1t=%f;
        if RHS==1 then
-         warning(msprintf(gettext("%s: Needs Alfa => use default value Alfa=-1.\n"),"abinv"))
+         warning(msprintf(gettext("%s: Needs %s => Use default value %s=%d.\n"),"abinv","Alfa","Alfa",-1))
          Alfa=-1;
        end
        F1t_tmp=0*sl1('B')'; //nu-k rows, dimV columns
@@ -138,7 +138,7 @@ end
 sl2=syslin(timedomain,A22,B2*Urange,0*(B2*Urange)');
 [ns2,nc2,U2,sl3]=st_ility(sl2);
 if (nc2~=0)&(RHS==1|RHS==2) then
-  warning(msprintf(gettext("%s: Needs Beta => use default value Beta=-1.\n"),"abinv"));
+  warning(msprintf(gettext("%s: Needs %s => Use default value %s=%d.\n"),"abinv","Beta","Beta",-1));
 end
 F2=Urange*stabil(sl2('A'),sl2('B'),Beta);
 
index a305ee5..d78547e 100644 (file)
@@ -11,7 +11,7 @@
 function [A,B,D]=arma2p(ar) 
 // Build three polynomial matrices 
 // from an ar representation 
-if ar(1)<>'ar' then write(%io(2)," This is not an ARMAX");return;end;
+if ar(1)<>'ar' then error(msprintf(gettext("%s: This is not an ARMAX.\n"),"arma2p"));return;end;
 A=inv_coeff(ar(2));
 if ar(3)<>[] then 
        [mb,nb]=size(ar(3));
index 806fc53..27da4d7 100644 (file)
@@ -22,24 +22,22 @@ function [ar]=armac(a,b,d,ny,nu,sig)
 
 [na,la]=size(a);
 if na<>ny then 
-       write(%io(2),"armac: a(:,1) must be of dimension "+string(ny));
-       return;
+  error(msprintf(gettext("%s: Wrong size for input argument #%d: %s must be of dimension %s.\n"),"armac",1,"a(:,1)", string(ny)));
+
 end
 [nb,lb]=size(b);
 if nb<>0 & nb<>ny then 
-       write(%io(2),"armac: b(:,1) must be of dimension "+string(ny));
-       return;
+  error(msprintf(gettext("%s: Wrong size for input argument #%d: %s must be of dimension %s.\n"),"armac",2,"b(:,1)", string(ny)));
 end;
 if lb<>0 & nu<>0 then 
  if modulo(lb,nu)<>0 then 
-       write(%io(2),"armac: number of columns of b are incompatible with nu');
-       return;
+   error(msprintf(gettext("%s: Wrong size of input argument #%d: Number of columns are incompatible with %s.\n"),"armac",2,"nu"));
   end;
 end      
 [nd,ld]=size(d);
 if nd<>ny then 
-       write(%io(2),"armac: d(:,1) must be of dimension "+string(ny));
-       return;
+  error(msprintf(gettext("%s: Wrong size for input argument #%d: %s must be of dimension %s.\n"),"armac",3,"d(:,1)", string(ny)));
+
 end
 ar=tlist(['ar','a','b','d','ny','nu','sig'],a,b,d,ny,nu,sig);
 endfunction
index 9307a24..9bb369b 100644 (file)
@@ -1,3 +1,12 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 
+// 
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at    
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
 function [archap,la,lb,sig,resid]=armax(r,s,y,u,b0f,prf)
 //[la,lb,sig,resid]=armax(r,s,y,u,[b0f,prf])
 // Identification ARX
@@ -59,8 +68,7 @@ if rhs<=4,b0f=0;end
 // zz(:,j)=[ y(t-1),...,y(t-r),u(t),...,u(t-s)]', avec  t=t0-1+j
 // on peut calcule zz a partir de t=t0;
  t0=maxi(maxi(r,s)+1,1);
- if r==0;if s==-1;write(%io(2),"if  r==0 and s==-1 there''s nothing to identify");
- return
+ if r==0;if s==-1;error(msprintf(gettext("%s: Wrong value for input arguments: If %s and %s nothing to identify.\n"),"armax","r==0","s==-1"))
  end;end
  z=[];
  if r>=1;for i=1:r,z=[z ; y(:,t0-i:(n2-(i)))];end;end
@@ -71,7 +79,7 @@ if rhs<=4,b0f=0;end
  [nzl,nzc]=size(zz);
  k=rank(zz);
 if k<>nzl then
-  write(%io(2),"Warning: z.z'' is numerically singular");
+  warning(msprintf(gettext("%s: %s is numerically singular.\n"),"armax","z.z''"));
 end;
  pv=pinv(zz);
  coef=(pv*zy)';
@@ -106,11 +114,11 @@ archap=armac(a,b,eye(ny,ny),ny,nu,sig);
 if prf==1;
    if ny==1,
      [nla,nca]=size(la(2));
-     write(%io(2),"  Standard deviation of the estimator a :");
+     mprintf(gettext("%s: Standard deviation of the estimator %s:\n"),"armax","a");
      form_a='(5x,'+string(nca)+'(f7.5,1x))';
-     write(%io(2),la(2)-a,form_a);
+        write(%io(2),la(2)-a,form_a);
      if nu<>0 then 
-       write(%io(2),"  Standard deviation of the estimator b :");
+       mprintf(gettext("%s: Standard deviation of the estimator %s:\n"),"armax","b");
        [nlb,ncb]=size(lb(2));
        write(%io(2),lb(2)-b,'(5x,'+string(ncb)+'(f7.5,1x))');
      end 
index e02bd14..81db442 100644 (file)
@@ -43,7 +43,7 @@ if rhs<=5,b0f=0;end
 if s==-1,b0f=0;end // Seems not natural, but makes things work 
 u=matrix(u,1,-1);y=matrix(y,1,-1); //make u and y row vectors
 [n1,n2]=size(y)
-if size(y,'*')<>size(u,'*') then error('u and y must have same size');
+if size(y,'*')<>size(u,'*') then error(msprintf(gettext("%s: Wrong type for input arguments: %s and %s must have same size.\n"),"armax1","u","y"));
 end 
 //
 t0=maxi(maxi(r,s+1),1)+1;
index 1e2507f..e01c6ae 100644 (file)
@@ -14,7 +14,7 @@ function z=arsimul(x1,x2,x3,x4,x5,x6,x7,x8)
 [lhs,rhs]=argn(0)
 // switch to ar representation 
 if type(x1)<>15&type(x1)<>16 then 
-   if rhs < 5, write(%io(2),msprintf(gettext("%s: Wrong number of input argument: At least %d expected.\n"),"arsimul",5));
+   if rhs < 5, error(msprintf(gettext("%s: Wrong number of input arguments: At least %d expected.\n"),"arsimul",5));
        return;end;
    ar=armac(x1,x2,x3,size(x1,'r'),size(x5,'r'),x4);
    if rhs==5,z=arsimul(ar,x5);return;end
@@ -28,7 +28,7 @@ u=x2;
 [bl,bc]=size(b);[al,ac]=size(a);[dl,dc]=size(d);
 [mmu,Nu]=size(u);
 if mmu<>x1('nu') then 
-  write(%io(2),msprintf(gettext("%s: Number of rows of u are incompatible with arma object.\n"),"arsimul"));
+  error(msprintf(gettext("%s: Number of rows of %s are incompatible with %s object.\n"),"arsimul","u",'arma"));
   return;
 end;
 // X = [y_{n-1},y_{n-2},...y_{n-ka},u_{n-1},....,u_{n-kb},e_{n-1},....,e_{n-kd}
@@ -67,13 +67,13 @@ if rhs <=2,
 else
    up=x3;
    if bl1==0 then 
-      if up<>[] then write(%io(2),msprintf(gettext("%s: Wrong size for input argument #%d: [] expected.\n"),"arsimul",3))
+      if up<>[] then error(msprintf(gettext("%s: Wrong size for input argument #%d: [] expected.\n"),"arsimul",3))
                return ;
       end;
    else 
       up_s=size(up)
       if up_s(1)<>mmu|up_s(2)<>(bl1/mmu) then
-       write(%io(2),msprintf(gettext("%s: up=[u(0),u(-1),..,] must be of dimension (%s,%s).\n'),"arsimul",string(mmu),string(bl1/mmu)));
+       error(msprintf(gettext("%s: %s must be of dimension (%s, %s).\n'),"arsimul","up=[u(0),u(-1),..,]",string(mmu),string(bl1/mmu)));
         return 
       end
       up=matrix(up,bl1,1);
@@ -86,13 +86,13 @@ if rhs <=3,
 else
    yp=x4;
    if al1==0 then 
-      if yp<>[] then write(%io(2),msprintf(gettext("%s: Wrong size for input argument #%d: [] expected.\n"),"arsimul",4))
+      if yp<>[] then error(msprintf(gettext("%s: Wrong size for input argument #%d: [] expected.\n"),"arsimul",4))
                return ;
       end;
    else 
      yp_s=size(yp);
      if yp_s(1)<>al|yp_s(2)<>(al1/al) then 
-      write(%io(2),msprintf(gettext("%s: yp=[y(0),y(-1),..,] must be of dimension (%s, %s).\n"), "arsimul",string(al), string(al1/al)));
+      error(msprintf(gettext("%s: %s must be of dimension (%s, %s).\n"), "arsimul","yp=[y(0),y(-1),..,]",string(al), string(al1/al)));
       return;
      end
      yp=matrix(yp,al1,1);
@@ -105,13 +105,13 @@ if rhs <=4,
 else
    ep=x5
    if dl1==0 then 
-      if ep<>[] then write(%io(2),msprintf(gettext("%s: Wrong size for input argument #%d: [] expected.\n"),"arsimul",5))
+      if ep<>[] then error(msprintf(gettext("%s: Wrong size for input argument #%d: [] expected.\n"),"arsimul",5))
                return ;
       end;
    else 
       ep_s=size(ep);
       if ep_s(1)<>al|ep_s(2)<>(dl1/al) then
-                      write(%io(2),msprintf(gettext("%s: ep=[e(0),e(-1),..,] must be of dimension (%s, %s).\n"), "arsimul",string(al), string(dl1/al)));
+                      error(msprintf(gettext("%s: %s must be of dimension (%s, %s).\n"), "arsimul","ep=[e(0),e(-1),..,]",string(al), string(dl1/al)));
          return;
       end
       ep=matrix(ep,dl1,1);
index 11d0e62..7b67523 100644 (file)
@@ -44,7 +44,7 @@ case 'o'
   select long
   case 3 then
     // 'SRT'
-    if SRT<>"SRT" then error(msprintf(gettext("%s: Wrong value for input argument: ''%s'' expected."), 'augment','SRT'),9999);
+    if SRT<>"SRT" then error(msprintf(gettext("%s: Wrong value for input argument: ''%s'' expected.\n"), 'augment','SRT'),9999);
       return
     end
     if ssSRT==0 then
@@ -116,7 +116,7 @@ case 'o'
       end
       return  
     end 
-    error(msprintf(gettext("%s: Wrong value for input argument: ''%s'', ''%s'' or ''%s'' expected."),'augment','SR','ST','RT'),9999);
+    error(msprintf(gettext("%s: Wrong value for input argument: ''%s'', ''%s'' or ''%s'' expected.\n"),'augment','SR','ST','RT'),9999);
   case 1 then
     if SRT=='S' then
       if ssSRT==0 then
@@ -177,7 +177,7 @@ case 'i'
   select long
   case 3 then
     // 'SRT'
-    if SRT<>"SRT" then error(msprintf(gettext("%s: Wrong value for input argument: ''%s'' expected."),'augment','SRT'),9999);
+    if SRT<>"SRT" then error(msprintf(gettext("%s: Wrong value for input argument: ''%s'' expected.\n"),'augment','SRT'),9999);
       return;
     end;
     if ssSRT==0 then
@@ -245,7 +245,7 @@ case 'i'
       end
       return  
     end 
-    error(msprintf(gettext("%s: Wrong value for input argument: ''%s'', ''%s'' or ''%s'' expected."),'augment','SR','ST','RT'),9999);
+    error(msprintf(gettext("%s: Wrong value for input argument: ''%s'', ''%s'' or ''%s'' expected.\n"),'augment','SR','ST','RT'),9999);
   case 1 then
     if SRT=='S' then
       if ssSRT==0 then
index 5909f0b..7486317 100644 (file)
@@ -13,10 +13,10 @@ function [h,name]=bloc2exp(syst,sexp)
 [lhs,rhs]=argn(0)
 
 if type(syst)<>15 then
-  error('argument must be a list describing the blocks')
+  error(msprintf(gettext("%s: Wrong type for input argument #%d: A list expected.\n"),"bloc2exp",1));
 end;
 if syst(1)<>'blocd' then
-  error('argument must be a list describing the blocks')
+  error(msprintf(gettext("%s: Wrong type for input argument #%d: A list expected.\n"),"bloc2exp",1));
 end;
 //inter%connection matrix
 nsyst=size(syst)
@@ -56,12 +56,6 @@ function [ab,nio,name]=construct(syst)
 //!
 [lhs,rhs]=argn(0)
 
-if type(syst)<>15 then
-  error('input must be a list for block-diagramm representation')
-end;
-if syst(1)<>'blocd' then
-  error('input must be a list for block-diagramm representation')
-end;
 [lboites,lliens,lentrees,lsorties]=blocdext(syst)
 nio=[prod(size(lentrees)),prod(size(lsorties))]
 lliens=[lliens,lsorties]
@@ -133,12 +127,12 @@ for k=2:nsyst
             end;
                       else lentrees(1,-obj2(1))=k,
          end;
-     else error('undefined element')
+     else  error(msprintf(gettext("%s: Undefined type ''%s''.\n"),"bloc2exp",obj(1)))
   end;
   end,end
 end;
-if mini(lsorties)==0 then error('undefined output'),end
-if mini(lentrees)==0 then error('undefined input'),end
+if mini(lsorties)==0 then error(msprintf(gettext("%s: Internal error: Undefined output.\n"),"bloc2exp")),end
+if mini(lentrees)==0 then error(msprintf(gettext("%s: Internal error: Undefined input.\n"),"bloc2exp")),end
 
 endfunction
 function [where_x]=%connect(bloc,lliens,syst)
index 4c4de76..b1785b4 100644 (file)
@@ -228,6 +228,6 @@ for k=2:nsyst
 end;
 if lsorties==[] then error(msprintf(gettext("%s: Internal error: Wrong number of output arguments.\n"),"bloc2ss")),end
 if lentrees==[] then error(msprintf(gettext("%s: Internal error: Wrong number of input arguments.\n"),"bloc2ss")),end
-if mini(lsorties)==0 then error(msprintf(gettext("%s: Internal error: Undefined input.\n"),"bloc2ss")),end
-if mini(lentrees)==0 then error(msprintf(gettext("%s: Internal error: Undefined output.\n"),"bloc2ss")),end
+if mini(lsorties)==0 then error(msprintf(gettext("%s: Internal error: Undefined output.\n"),"bloc2ss")),end
+if mini(lentrees)==0 then error(msprintf(gettext("%s: Internal error: Undefined input.\n"),"bloc2ss")),end
 endfunction
index 6d4f255..e821869 100644 (file)
@@ -56,7 +56,7 @@ if RHS==1 then Alfa=-1;Beta=-1;flag='ge';end
 if RHS==2 then Beta=Alfa;flag='ge';end
 if RHS==3 then flag='ge';end
 if RHS==4 then 
-if type(flag)~=10 then error('abinv: flag must be a string');end
+if type(flag)~=10 then error(msprintf(gettext("%s: Wrong type for input argument #%d: A string expected.\n"),"cainv",4));end
 end
 [X,ddims,F,U,k,Z]=abinv(Sl',Beta,Alfa,flag);
 [nx,nx]=size(X);
index 5805cd5..06d36e0 100644 (file)
@@ -20,11 +20,11 @@ tol=0.01     // Tolerance for testing pure imaginary numbers
 // Check inputs
 // ------------
 if type(h)<>15&type(h)<>16 then 
-  error('first arg. to calfrq : waiting for syslin list'),
+  error(msprintf(gettext("%s: Wrong type for input argument #%d: A syslin list expected.\n"),"calfrq"));
   end
 flag=h(1);
 if flag(1)<>'lss'&h(1)<>'r' then 
-  error('first arg. to calfrq : waiting for syslin list'),
+  error(msprintf(gettext("%s: Wrong type for input argument #%d: A syslin list expected.\n"),"calfrq"));
 end
 if flag(1)=='lss' then
   h=ss2tf(h)
@@ -46,11 +46,11 @@ end;
 if type(dom)==1 then 
   nyq_frq=1/2/dom;
   if fmax>nyq_frq then 
-    warning('frequencies beyond Nyquist f are ignored!');
+    warning(msprintf(gettext("%s: Frequencies beyond Nyquist f are ignored.\n"),"calfrq"));
     fmax=min(fmax,nyq_frq)
   end
   if fmin<-nyq_frq then 
-    warning('negative frequencies below Nyquist f are ignored!');
+    warning(msprintf(gettext("%s: Negative frequencies below Nyquist f are ignored.\n"),"calfrq"));
     fmin=max(fmin,-nyq_frq)
   end
 end
@@ -93,7 +93,7 @@ elseif fmin<0&fmax<=0 then
   bnds=[bnds(1),bnds(2),-bnds(4),-bnds(3)];
   return;
 elseif fmin >= fmax then
-  error('calfrq: fmin must be < fmax');
+  error(msprintf(gettext("%s: Wrong value for input argument: %s < %s expected.\"),"calfrq","fmin","fmax"));
 end
 
 // Compute dicretisation over a given range
index 2b923dc..deebaaa 100644 (file)
@@ -16,7 +16,7 @@ function c=cont_mat(a,b)
 [lhs,rhs]=argn(0)
 select type(a)
  case 1  then
-    if rhs==1 then error('2 arguments : a,b'),end
+    if rhs==1 then error(msprintf(gettext("%s: Wrong number of input arguments: %d expected"),"cont_mat",2)),end
     [m,n]=size(a)
     if m<>n then error(20,1),end
     [mb,nb]=size(b);if mb<>n then error(60),end
@@ -25,7 +25,7 @@ select type(a)
     if a(1)<>'lss' then error(91,1),end
     [a,b]=a([2,3])
     [n,n]=size(a)  
- else error('a,b pair or syslin list')
+ else error(msprintf(gettext("%s: Wrong type of input arguments: %s,%s pair or syslin list.\n"),"cont_mat","a","b"))
 end;
 c=b;for k=1:n-1, c=[b,a*c],end
 endfunction
index 49e3f90..fce5357 100644 (file)
@@ -29,7 +29,7 @@ function [n,m,xt,yt]=copfac(g,polf,polc,tol)
     g=tf2ss(g)
   case "state-space" then
   else
-    error("first argument should be a linear dynamic system")
+    error(msprintf(gettext("%s: Wrong type for argument #%d: Linear dynamic system expected.\n"),"copfac",1))
   end
   [r,p,t]=size(g);
   [a,b,c,d]=g(2:5),
@@ -46,7 +46,7 @@ function [n,m,xt,yt]=copfac(g,polf,polc,tol)
     w1=u1(:,n1+1:t),a1=w1'*a*w1,
     no=norm(a1),
     if maxi(real(spec(a1)))>no*tol then
-      error('System is not stabilizable'),
+      error(msprintf(gettext("%s: System is not stabilizable.\n"),"copfac")),
     end,
   end,
   //------------------
@@ -54,7 +54,7 @@ function [n,m,xt,yt]=copfac(g,polf,polc,tol)
     w2=u2(:,n2+1:t),a2=w2'*a*w2,
     no=norm(a2),
     if maxi(real(spec(a2)))>no*tol then
-      error('System is not detectable'),
+      error(msprintf(gettext("%s: System is not detectable.\n'),"copfac")),
     end,
   end,
   //-----------------------------
index b8a400c..e1dd094 100644 (file)
@@ -51,10 +51,10 @@ function [y,x]=csim(u,dt,sl,x0,tol)
   case  'r'  then sl=tf2ss(sl)
   else  error(97,1),
   end;
-  if sl(7)<>'c' then warning('csim: time domain is assumed continuous'),end
+  if sl(7)<>'c' then warning(msprintf(gettext("%s: Time domain not defined: Assumed continuous.\n."),"csim")),end
   //
   [a,b,c,d]=sl(2:5);
-  if type(d)==2&degree(d)>0 then d=coeff(d,0);warning('D set to constant');end
+  if type(d)==2&degree(d)>0 then d=coeff(d,0);warning(msprintf(gettext("csim: %s set to constant.\n"),"csim","D"));end
   [ma,mb]=size(b);
   //
   imp=0;text='if t==0 then y=0, else y=1,end'
@@ -66,13 +66,13 @@ function [y,x]=csim(u,dt,sl,x0,tol)
       //impuse response
       imp=1;
       if norm(d,1)<>0 then
-       warning('direct feedthrough (d) <> 0;set to zero');
+       warning(msprintf(gettext("%s: Direct feedthrough %s <> %d;set to zero.\n"),"csim","(d)",0));
        d=0*d;
       end;
     elseif part(u,1)=='s' then
       //step response
     else
-      error('Invalid response type requested. Should be ""step"" or ""impuls""')
+      error(msprintf(gettext("%s: Wrong value for input argument #%d: ''%s'' or ''%s'' expected.\n"),"csim",1,"step","impuls"))
     end;
     deff('[y]=u(t)',text);
   case 11 then //input given by a function of time
@@ -80,7 +80,7 @@ function [y,x]=csim(u,dt,sl,x0,tol)
   case 13 then //input given by a function of time
   case 1 then //input given by a vector of data
     [mbu,ntu]=size(u);
-    if mbu<>mb | ntu<>size(dt,'*') then error('wrong size of u'), end
+    if mbu<>mb | ntu<>size(dt,'*') then error(msprintf(gettext("%s: Wrong size for input argument #%d.\n"),"csim",1)), end
   case 15 then  //input given by a list: function of time with parameters
     uu=u(1),
     if type(uu)==11 then 
index daec5f1..5e4e998 100644 (file)
@@ -12,7 +12,7 @@ function [Bfs,Bis,tf]=des2tf(des)
 //des admits a D matrix.
 
 [LHS,RHS]=argn(0);
-if LHS<>1 & LHS<> 3 then error('des2tf: 1 or 3 output args needed');end
+if LHS<>1 & LHS<> 3 then error(msprintf(gettext("%s: Wrong number of output arguments: %d or %d expected.\n"), "des2tf",1,3)); end
 [A,B,C,D,E]=des(2:6);
 [Bfs,Bis,chis]=glever(E,A);
 if LHS==3 then Bfs=C*Bfs*B; Bis=C*Bis*B+D;tf=chis;return;end
index e3d2a10..e7117b2 100644 (file)
@@ -18,7 +18,7 @@ gamamin=sqrt(%eps);
 n=0;
 while %T
 gama=(gamamin+gamamax)/2;n=n+1;
-if n>1000 then warning('dhnorm: more than 1000 iterations!');return;end
+if n>1000 then warning(msprintf(gettext("%s: More than %d iterations.\n"),"dhnorm",1000));return;end
  if dhtest(Sl,gama) then
   gamamax=gama; else gamamin=gama
  end
index fce3ef5..4e01fea 100644 (file)
@@ -12,10 +12,10 @@ function [f,r]=dscr(a,dt,m)
 
 [lhs,rhs]=argn(0);lst=0
 if type(dt)<>1 then
-  error('dscr: sampling period must be a positive real scalar')
+  error(msprintf(gettext("%s: Wrong type for input argument #%d: A positive real expected.\n"),"dscr",2))
 end
 if size(dt,'*')<>1|~isreal(dt)|dt<=0 then
-  error('dscr: sampling period must be a positive  real scalar')
+  error(msprintf(gettext("%s: Wrong type for input argument #%d: A positive real expected.\n"),"dscr",2))
 end
 
 flag=a(1);
@@ -29,7 +29,7 @@ else
   error(97,1),
 end;
 if dom<>'c' then 
-  warning('dscr: time domain assumed to be continuous'),
+  warning(msprintf(gettext("%s: Time domain not defined: Assumed continuous.\n."),"dscr")),
 end
 [n1,m1]=size(b),
 s=expm([a,b;0*ones(m1,n1+m1)]*dt),
index 3482f2a..e32ef56 100644 (file)
@@ -37,7 +37,7 @@ q=t2*q*t2';t3=eye(n,n);
 if np<>n then
   x=diag(ones(nq,1)./(sigma1.*sigma1))*q(1:nq,np+1:n)
   t3(1:nq,np+1:n)=-x;
-  q=t3'*q*t3;// ici t3 vaut en fait t3**-1
+  q=t3'*q*t3;// here t3 value is in reality t3**-1
   t3(1:nq,np+1:n)=x;
 end;
 //
index 821ea62..8d23550 100644 (file)
@@ -57,7 +57,7 @@ if tol==[] then tol = 0;end
 if nin<5 then meth = 1;end
 if meth==[] then meth = 1;end
 if nin<4 then
-  error('Wrong number of input arguments');
+  error(msprintf(gettext("%s: Wrong number of input arguments: At least %d expected.\n"),"findAC",4));
 end
 // 
 // Compute system matrices A and C.
@@ -70,7 +70,7 @@ elseif nout==2 then
 elseif nout==3 then
   [A,C,rcnd] = sident(meth,job,s,n,l,R,tol,nsmpl,[],[],printw);
 else
-  error('Wrong number of output arguments');
+  error(msprintf(gettext("%s: Wrong number of output arguments: %d to %d expected.\n"),"findAC",1,3));
 end
 // 
 // end findAC
index 35a851d..1a9a210 100644 (file)
@@ -87,7 +87,7 @@ if job==[] then job = 2;end
 if nin<7 then meth = 2;end
 if meth == [] then meth = 2;end
 if nin<6 then
-  error('Wrong number of input arguments');
+  error(msprintf(gettext("%s: Wrong number of input arguments: %d to %d expected.\n'),"findBDK",6,11));
 end
 // 
 jobl = job+2;
@@ -116,7 +116,7 @@ elseif nout==6 then
 elseif nout==7 then
   [B,D,K,Q,Ry,S,rcnd] = sident(meth,jobl,s,n,l,R,tol,nsmpl,A,C,printw);
 else
-  error('Wrong number of output arguments');
+  error(msprintf(gettext("%s: Wrong number of output arguments: %d to %d expected.\n'),"findBDK",1,7));
 end
 // 
 // end findBDK
index e018dad..90d8dbb 100644 (file)
@@ -58,10 +58,10 @@ x0=[];B=[];D=[];V=[];rcnd=[];
 ni = nargin;
 nout = nargout;
 if ni<4 then
-  error('FINDX0BD needs at least 4 input parameters');
+  error(msprintf(gettext("%s: Wrong number of input arguments: At least %d expected.\n"),"findx0BD",4));
 end
 if nout<1 then
-  error('FINDX0BD needs at least 1 output parameters');
+  error(msprintf(gettext("%s: Wrong number of output arguments: At least %d expected.\n"),"findx0BD",1));
 end
 // 
 if ni<8 then
@@ -74,7 +74,7 @@ if ni<6 then
 elseif withd ==[] then
   withd = 1;
 elseif (withd~=0)&(withd~=1) then
-  error('withd could only be 0 or 1');
+  warning(msprintf(gettext("%s: Wrong value for input argument #%d: %d or %d expected.\n"),"findx0BD",6,0,1))
 end
 if ni<5 then  withx0 = 1;end
 if withx0 ==[] then  withx0 = 1;end
index c616ab9..02132fe 100644 (file)
@@ -35,7 +35,7 @@ select flag(1)
       y=sl(4)*x+rtitr(sl(5),eye(sl(5)),u)
     end
    case 'r'  then  
-    if lhs>1 then error('flts: invalid lhs'),end
+    if lhs>1 then error(msprintf(gettext("%s: Wrong number of output argument: %d expected.\"),"flts",1)),end
     [num,den]=sl(['num','den']);[ns,ne]=size(num)
        select sl('dt')
         case 'c' then error(94,2),
@@ -52,7 +52,7 @@ select flag(1)
     if rhs==3 then
        [mx,nx]=size(x0);maxdgd=maxi(degree(nden))
        if nx<maxdgd then
-         error('AT LEAST '+string(maxdgd)+' PAST VALUES!')
+         error(msprintf(gettext("%s: At least %s past values.\n"),"flts",string(maxdgd)))
        end;
        if mx<>ns+ne then error(60),end
     end;
index e481a97..8133926 100644 (file)
@@ -52,28 +52,23 @@ INIT_LOW=1.0e-3; INIT_UPP=1.0e6;  INFTY=10e10;
 RELACCU=1.0e-10; //relative accuracy on generalized eigenvalue computations
 gopt=-1;
  
 //parameter recovery
 [a,b1,b2,c1,c2,d11,d12,d21,d22]=smga(g,r);
  
 //dimensions
 [na,na]=size(a); twona=2*na;
 [p1,m2]=size(d12),
 [p2,m1]=size(d21),
  
 //CHECK HYPOTHESES
 //****************
  
 if m2 > p1 then
-  write(%io(2),'WARNING: the dimensions of D12 are inadequate');
+  warning(msprintf(gettext("%s: Dimensions of %s are inadequate.\n"),"gamitg","D12"));
 end
  
 if p2 > m1 then
-  write(%io(2),'WARNING: the dimensions of D21 are inadequate');
+  warning(msprintf(gettext("%s: Dimensions of %s are inadequate.\n"),"gamitg","D21"));
 end
  
 [u12,s12,v12]=svd(d12);   s12=s12(1:m2,:);
@@ -84,11 +79,11 @@ v21=v21(:,1:p2);   //d21 = u21 s21 v21'
 //rank condition on D12 and D21
 //-----------------------------
 if s12(m2,m2)/s12(1,1) <= 100*%eps then
-  write(%io(2),'WARNING: D12 is not full rank at the machine precision');
+  warning(msprintf(gettext("%s: %s is not full rank at the machine precision.\n"),"gamitg","D12"));
 end
  
 if s21(p2,p2)/s21(1,1) <= 100*%eps then
-  write(%io(2),'WARNING: D21 is not full rank at the machine precision');
+  warning(msprintf(gettext("%s: %s is not full rank at the machine precision.\n"),"gamitg","D21"));
 end
  
 //(A,B2,C2) stabilizable + detectable
@@ -97,12 +92,12 @@ noa=maxi(abs(a));  nob2=maxi(abs(b2)); noc2=maxi(abs(c2));
  
 ns=st_ility(syslin('c',a,b2,c2),1.0e-10*maxi(noa,nob2));
 if ns<na then
-  write(%io(2),'WARNING: (A,B2) is nearly unstabilizable');
+  warning(msprintf(gettext("%s: %s is nearly unstabilizable.\n"),"gamitg","(A,B2)"));
 end
  
 nd=dt_ility(syslin('c',a,b2,c2),1.0e-10*maxi(noa,noc2));
 if nd>0 then
-  write(%io(2),'WARNING: (C2,A) is nearly undetectable');
+  warning(msprintf(gettext("%s: %s is nearly unstabilizable.\n"),"gamitg","(C2,A)"));
 end
  
 //Imaginary axis zeros: test the Hamiltonian spectra at gamma=infinity
@@ -112,7 +107,7 @@ ah=a-b2*v12/s12*u12'*c1;  bh=b2*v12; ch=u12'*c1;
 hg=[ah,-bh/(s12**2)*bh';ch'*ch-c1'*c1,-ah'];
 spech=spec(hg);
 if mini(abs(real(spech))) < 1.0e-9*maxi(abs(hg)) then
-  write(%io(2),'WARNING: G12 has zero(s) near the imaginary axis');
+  warning(msprintf(gettext("%s: %s has zero(s) near the imaginary axis.\n"),"gamitg","G12"));
 end
  
  
@@ -120,7 +115,7 @@ ah=a-b1*v21/s21*u21'*c2;  ch=u21'*c2; bh=b1*v21;
 jg=[ah',-ch'/(s21**2)*ch;bh*bh'-b1*b1',-ah];
 specj=spec(jg);
 if mini(abs(real(specj))) < 1.0e-9*maxi(abs(jg)) then
-  write(%io(2),'WARNING: G21 has zero(s) near the imaginary axis');
+    warning(msprintf(gettext("%s: %s has zero(s) near the imaginary axis.\n"),"gamitg","G21"));
 end
  
  
@@ -229,7 +224,7 @@ if T_EVALH==1 then
    if mini(abs(real(hev))) <= RELACCU*maxi(abs(hev)) then
       lower=ga; DONE=1;   //Hg HAS EVAL ON iR -> NEXT LOOP
       if str_member('t',options) then
-         write(%io(2),'H has pure imaginary eigenvalue(s)');
+                mprintf(gettext("%s: %s has pure imaginary eigenvalue(s).\n"),"gamitg","H");
       end
    end
 end
@@ -243,7 +238,7 @@ if DONE==0 then
      if mini(abs(real(jev))) <= RELACCU*maxi(abs(jev)) then
         lower=ga; DONE=1;   //Jg HAS EVAL ON iR -> NEXT LOOP
         if str_member('t',options) then
-           write(%io(2),'J has pure imaginary eigenvalue(s)');
+                 mprintf(gettext("%s: %s has pure imaginary eigenvalue(s).\n"),"gamitg","J");
         end
       end
    end
@@ -279,7 +274,8 @@ if DONE==0 then
         if mini(abs([e(i),f(i)])) >= RELACCU & real(e(i)/f(i)) <= 0 then
           lower=ga;  DONE=1;  T_EVALH=0;  i=na+1;
           if str_member('t',options) then
-                          write(%io(2),'X is indefinite');end
+                       mprintf(gettext("%s: %s is indefinite.\n"),"gamitg","X");
+                 end
         else
           i=i+1;
         end
@@ -302,7 +298,7 @@ if DONE==0 then
         if mini(abs([e(i),f(i)])) >= RELACCU & real(e(i)/f(i)) <= 0 then
           lower=ga;  DONE=1;  T_EVALJ=0;  i=na+1;
           if str_member('t',options) then
-                           write(%io(2),'Y is indefinite');end
+                       mprintf(gettext("%s: %s is indefinite.\n"),"gamitg","Y");end;
         else
           i=i+1;
         end
@@ -337,14 +333,12 @@ end
 //------------------
  
 if lower > INFTY then
-   write(%io(2),..
-     'controllable & observable mode(s) of A near the imaginary axis');
+   mprintf(gettext("%s: Controllable & observable mode(s) of %s near the imaginary axis.\n"),"gamitg","A");
    gopt=lower;
    return;
 else if upper < 1.0e-10 then
    gopt=upper;
-   write(%io(2),..
-     'All modes of A are nearly nonminimal so that || G || is almost 0');
+   mprintf(gettext("%s: All modes of %s are nearly nonminimal so that %s is almost %d.\n"),"gamitg","A","|| G ||",0);
    return;
 else if 1-lower/upper < PREC,
    gopt=sqrt(lower*upper);
index 8dc2e28..f226d13 100644 (file)
@@ -60,5 +60,5 @@ Wmodel=[A,B;C,D];
 err=norm(Wplant*[T,zeros(nf,num);
                  L,M]-[T,zeros(nf,lc);
                        zeros(lc,na),eye(lc,lc)]*Wmodel,1);
-if err > 1.d-5 then warning('Francis equations not satisfied!');end
+if err > 1.d-5 then warning(msprintf(gettext("%s: Francis equations not satisfied.\n"),"gfrancis"));end
 endfunction
index 1ca3d56..03f11b5 100644 (file)
@@ -39,7 +39,7 @@ if flag=='c'
 elseif flag=='d'  
   Gt=dp_tilde(G);
 elseif flag==[]
-  warning('gtild: flag not given! --> assumes c');
+  warning(msprintf(gettext("%s: Wrong value for input argument #%d: %s assumed.\n"),"gtild",2,"c"));
   Gt=cp_tilde(G);return;
 end
 
@@ -50,7 +50,7 @@ if flag=='c'
 elseif flag=='d' 
   Gt=horner(G',1/s);return;
 elseif flag==[]
-  warning('Flag not given : assumes c');
+  warning(msprintf(gettext("%s: Wrong value for input argument #%d: %s assumed.\n"),"gtild",2,"c"));
   Gt=cp_tilde(G);return;
 end
 
@@ -84,6 +84,8 @@ case 'constant'
 Gt=G';return;
 end
 
+
+
 endfunction
 function mpt=dp_tilde(mp)
 //mp(z) =  polynomial matrix 
index a293753..0df13f0 100644 (file)
@@ -20,10 +20,10 @@ if type(g)==1,if norm(g)==0,nh=0,return,end,end,
 if rhs==1 then tol=1000*%eps,end;
 g1=g(1);
 if g1(1)=='lss' then
-  if norm(g(5))>0 then error('non zero D'),end;
+  if norm(g(5))>0 then error(msprintf(gettext("%s: Non zero D.\n"),"h2norm")),end;
   sp=spec(g(2)),
   if maxi(real(sp))>=-tol then
-    error('unstable system!'),
+     error(msprintf(gettext("%s: Unstable system.\n"),"h2norm"))
   end,
   w=obs_gram(g(2),g(4),'c'),
   nh=abs(sqrt(sum(diag(g(3)'*w*g(3))))),return,
@@ -38,11 +38,11 @@ else,
        nh(i,j)=0,
       else
        if degree(n)>=degree(d) then
-         error('improper system'),
+         error(msprintf(gettext("%s: Improper system.\n"),"h2norm"))
        end
        pol=roots(d),
        if maxi(real(pol))>-tol then
-       error('unstable system!'),end,
+       error(msprintf(gettext("%s: Unstable system.\n"),"h2norm")),end,
        nt=horner(n,-s),dt=horner(d,-s),
        nh(i,j)=residu(n*nt,d,dt),
       end,
index 34f3865..c2f4ea1 100644 (file)
@@ -100,20 +100,20 @@ P22=syslin('c',A,B2,C2);
  
 [ns,Us,St]=st_ility(P22,1.d-10)
  
-if ns<>na then write(%io(2),'Warning: P22 not stabilizable');end
-if ns==na then write(%io(2),'P22 is stabilizable');end
+if ns<>na then warning(msprintf(gettext("%s: %s not stabilizable.\n"),"h_inf","P22"));end
+if ns==na then mprintf(gettext("%s: %s is stabilizable.\n"),"h_inf","P22");end
 
 [nd,Ud,Sd]=dt_ility(P22,1.d-10)
 
-if nd <> 0 then write(%io(2),'Warning: P22 not detectable');end
-if nd==0 then write(%io(2),'P22 is detectable');end
+if nd <> 0 then warning(msprintf(gettext("%s: %s not detectable.\n"),"h_inf","P22"));end
+if nd==0 then mprintf(gettext("%s: %s is detectable.\n"),"h_inf","P22");end
 
 // rank P21=[A,B2,C1,D12] = m2 ?
      P12=syslin('c',A,B2,C1,D12);
      [nt,dt]=trzeros(P12),rzt=real(nt./dt),
      if size(nt,'*') > 0 then
        if mini(abs(rzt)) < sqrt(%eps) then 
-     write(%io(2),'Warning P12 has a zero on/close the imaginary axis'),
+     warning(msprintf(gettext("%s: %s has a zero on/close the imaginary axis.\n"),"h_inf","P12")),
        end,
      end,
 
@@ -122,7 +122,7 @@ if nd==0 then write(%io(2),'P22 is detectable');end
      [nt,dt]=trzeros(P21),rzt=real(nt./dt),
      if size(nt,'*')>0 then
         if mini(abs(rzt)) < sqrt(%eps) then 
-    write(%io(2),'Warning: P21 has a zero on/close the imaginary axis'),
+    warning(msprintf(gettext("%s: %s has a zero on/close the imaginary axis.\n"),"h_inf","P21")),
         end,
      end,
 
@@ -130,12 +130,12 @@ if nd==0 then write(%io(2),'P22 is detectable');end
 
 //Row compression of D12 (bottom)
      [T1,r1]=rowcomp(D12),
- if r1<>m2 then error('D12 not full column rank'),end,
+ if r1<>m2 then error(msprintf(gettext("%s: %s not full column rank.\n"),"h_inf","D12")),end,
      T1=[T1(r1+1:p1,:);T1(1:r1,:)],
      D12=T1*D12,
 //Column compression of D21 (right)
      [S1,r2]=colcomp(D21),
- if r2<>p2 then error('D21 not full row rank'),end,
+ if r2<>p2 then error(msprintf(gettext("%s: %s not full row rank.\n"),"h_inf","D21")),end,
      D21=D21*S1,
 //Updating 
      B1=B1*S1,C1=T1*C1,
@@ -239,8 +239,8 @@ B1=B1+B2*Kinf*D21;
 C1=C1+D12*Kinf*C2;
 D11=D11+D12*Kinf*D21;
 
-if norm(D11) >= gama then write(%io(2),'error : gamma too small');
-    P6=[]; Kinf=[];Uc#i=[];Yc#i=[];return;end
+if norm(D11) >= gama then 
+    P6=[]; Kinf=[];Uc#i=[];Yc#i=[];error(msprintf(gettext("%s: gamma too small.\n"),"h_inf"));end
 
 //P3=list(A,B1,B2,C1,C2,D11,D12,D21,D22) with norm(D11) < gama.
 
@@ -280,12 +280,12 @@ D22=0*D22#;
 
 //Row compression of D12
      [T1,r1]=rowcomp(D12);
- if r1<>m2 then error('D12 not full rank! '),end
+ if r1<>m2 then error(msprintf(gettext("%s: %s not full rank.\n"),"h_inf_st","D12")),end
      T1=[T1(r1+1:p1,:);T1(1:r1,:)],
      D12=T1*D12,
 //Column compression of D21
      [S1,r2]=colcomp(D21),
- if r2<>p2 then error('D21 not full rank! '),end,
+ if r2<>p2 then error(msprintf(gettext("%s: %s not full rank.\n"),"h_inf_st","D21")),end,
      D21=D21*S1,
 //Updating
      B1=B1*S1,C1=T1*C1,
@@ -325,14 +325,14 @@ H=[Ax Rx;
 dx=mini(abs(real(spec(H))));
 //write(%io(2),dx);
        if dx < 1.d-9 then
- write(%io(2),'An eigenvalue of H (controller) is close to Imaginary axis !');
+                mprintf(gettext("%s: An eigenvalue of %s (controller) is close to Imaginary axis.\n"),"h_inf","H");
      write(%io(2),dx);
        indic=1;test=1;
        end
  if indic ==0 then
    [X1,X2,errx]=ric_desc(H);
      if errx > 1.d-4 then
-       write(%io(2),'Riccati solution inaccurate ');
+       mprintf(gettext("%s: Riccati solution inaccurate.\n"),"h_inf");
        write(%io(2),errx);
      end
 //Optimal observer :
@@ -350,14 +350,14 @@ dx=mini(abs(real(spec(H))));
     dy=mini(abs(real(spec(J))));
 //write(%io(2),dy);
       if dy < 1.d-9 then
-   write(%io(2),'An eigenvalue of J (observer) is close to Imaginary axis !');
-      write(%io(2),dy);
-      indic=1 ;test=1;
+               mprintf(gettext("%s: An eigenvalue of %s (observer) is close to Imaginary axis.\n"),"h_inf","J");
+               write(%io(2),dy);
+               indic=1 ;test=1;
        end
      if indic==0 then
        [Y1,Y2,erry]=ric_desc(J);
         if erry > 1.d-4 then 
-          write(%io(2),'Riccati solution inaccurate ');
+                 mprintf(gettext("%s: Riccati solution inaccurate.\n"),"h_inf");
           write(%io(2),erry);
         end
 //Tests
@@ -386,6 +386,7 @@ end
 //if exists('tv')==1 then write(%io(2),[tv,maxi(tv)],'(4f15.10)');end
 if exists('tv')==1 then 
    if answer>0 then 
+        // @TODO This stuff should be localized... To bored to understand it for now.
                if no==1 then
  write(%io(2),[1/sqrt(mu),answer],'('' gama = '',f18.10,'' Unfeasible (Hx hamiltonian)  test = '',e15.5)');
                        end
@@ -448,11 +449,12 @@ function [Sk,polesH,polesJ]=h_contr(P,r,mu,U2i,Y2i)
   dx=mini(abs(real(polesH)));
 //write(%io(2),dx);
 if dx < 1.d-6 then
- write(%io(2),'An eigenvalue of H (controller) is close to Imaginary axis !');
+  mprintf(gettext("%s: An eigenvalue of %s (controller) is close to Imaginary axis.\n"),"h_inf","H");
+
 end
    [X1,X2,errx]=ric_desc(H);
 if errx > 1.d-4 then 
-   write(%io(2),'Riccati solution inaccurate ');
+   mprintf(gettext("%s: Riccati solution inaccurate.\n"),"h_inf");
    write(%io(2),errx);
 end
 
@@ -466,12 +468,12 @@ end
   dy=mini(abs(real(polesJ)));
 //write(%io(2),dy);
 if dy < 1.d-6 then
-   write(%io(2),'An eigenvalue of J (observer) is close to Imaginary axis !');
+   mprintf(gettext("%s: An eigenvalue of %s (observer) is close to Imaginary axis.\n"),"h_inf","J");
 end
   [Y1,Y2,erry]=ric_desc(J);
 if erry > 1.d-4 then 
-   write(%io(2),'Riccati solution inaccurate ');
-   write(%io(2),erry);
+  mprintf(gettext("%s: Riccati solution inaccurate.\n"),"h_inf");
+     write(%io(2),erry);
 end
 
 //Controller in descriptor form
index d716e32..d405579 100644 (file)
@@ -30,11 +30,11 @@ D21=D(l2,k1);
 D22=D(l2,k2);
 [U,n]=rowcomp(D12);
 //n=r(2) ?
-if n<>r(2) then write(%io(2)," D12 not full rank !"),end
+if n<>r(2) then mprintf(gettext("%s: %s not full rank.\n"),"h_inf_st","D12"),end
 U=U([n+1:l-r(1),1:n],:);       //Bottom Compression
 [V,m]=colcomp(D21);
 //m=r(1) ?
-if m<>r(1) then write(%io(2)," D21 not full rank !"),end
+if m<>r(1) then mprintf(gettext("%s: %s not full rank.\n"),"h_inf_st","D21"),end
 //   Update
 D12=U*D12;
 D11=U*D11*V;
index eef8227..feb2915 100644 (file)
@@ -32,7 +32,7 @@ function [hinfnorm,frequency]=h_norm(Sl,rerr)
   [a,b,c,d]=Sl(2:5);
   eiga=spec(a);
   if maxi(real(eiga)) >= -1e-12 then 
-    warning(msprintf(_('%s: system is not stable !'),'h_norm'))
+    warning(msprintf(_("%s: System is not stable.\n"),"h_norm"))
   end
   if rhs==1 then rerr=1e-8; end;
   [no,ns] = size(c); [ns,ni] = size(b);
@@ -79,9 +79,7 @@ function [hinfnorm,frequency]=h_norm(Sl,rerr)
   end;
   if M == 1.d30 then
     lb=svdd;
-    warning(msprintf(_('%s: norm cannot be computed. Relative accuracy smaller than 1e-3\n'+..
-    'Hinfnorm is probably exactly max sv(D)\n'+..
-    'The system might be all-pass'),'h_norm'))
+    warning(msprintf(gettext("%s: norm cannot be computed. Relative accuracy smaller than 1e-3\nHinfnorm is probably exactly max sv(D)\nThe system might be all-pass"),"h_norm"))
   end;
   if exists('ub')==0 then ub=lb;end
   hinfnorm = 0.5 * (ub+lb); frequency = M;
@@ -98,7 +96,7 @@ function gama=dhnorm(Sl,tol,gamamax)
   n=0;
   while %T
     gama=(gamamin+gamamax)/2;n=n+1;
-    if n>1000 then warning('dhnorm: more than 1000 iterations!');return;end
+    if n>1000 then warning(msprintf(gettext("%s: More than %d iterations.\n"),"dhnorm",1000));return;end
     if dhtest(Sl,gama) then
       gamamax=gama; else gamamin=gama
     end
index dc6a414..0b754cb 100644 (file)
@@ -11,17 +11,17 @@ function [nk,W]=hankelsv(sl,tol)
 //!
 
 sl1=sl(1);
-if sl1(1)<>'lss' then error('State-space only :use tf2ss'),end
-if sl(7)=='d' then error('Continuous time only'),end
+if sl1(1)<>'lss' then error(msprintf(gettext("%s: State-space only.\n"),"hankelsv")),end
+if sl(7)=='d' then error(msprintf(gettext("%s: Continuous-time only.\n'),"hankelsv")),end
 sl(7)='c'
 //
 [lhs,rhs]=argn(0),
 if rhs==1 then tol=1000*%eps,end,
 lf=spec(sl(2)),
 if mini(abs(lf))<=tol then
-     error('Imaginary-axis poles!')
+     error(msprintf(gettext("%s: Imaginary axis poles.\n"),"hankelsv")),
 end
-if maxi(real(lf)) > tol then warning('unstable !'),end,
+if maxi(real(lf)) > tol then warning(msprintf(gettext("%s: Unstable.\n"),"hankelsv")),end,
 [sla,sls,d]=dtsi(sl);
 lc=ctr_gram(sls),lo=obs_gram(sls),W=lc*lo;
 nk=sort(real(spec(W)));
index a4351cd..53fcd1b 100644 (file)
@@ -52,10 +52,10 @@ if mtlb_isa(A,'lti') then
   // Special call     x0 = inistate(sys,y,u,tol,printw); 
   // 
   if A.dt=='c' then
-    error('The system SYS must be a discrete-time system');
+    error(msprintf(gettext("%s: The system %s must be a discrete-time system.\n"),"inistate","SYS"));
   end
   if ni<2 then
-    error('INISTATE needs at least 2 input parameters');
+    error(msprintf(gettext("%s: Wrong number of input arguments: At least %d expected.\n"),"inistate",2));
   end
   [As,Bs,Cs,Ds] = abcd(A)
   [ny,nu] = size(A);
@@ -105,7 +105,7 @@ else
   //                  x0 = inistate(A,C,y,tol,printw); 
   // 
   if ni<3 then
-    error('INISTATE needs at least 3 input parameters');
+    error(msprintf(gettext("%s: Wrong number of input arguments: At least %d expected.\n"),"inistate",3));
   end
   [m2,n2] = size(B);
   [m3,n3] = size(C);
index 8e7b047..0650dcd 100644 (file)
@@ -15,7 +15,7 @@ if type(t)<>16 then error(91,1),end
 flag=t(1);
 if flag(1) <> 'lss' then error(91,1),end;
 [p,m]=size(t(5));
-if p <> m then  warning('non square D matrix'),end
+if p <> m then  warning(msprintf(gettext("%s: Wrong size for input argument #%d: Square matrix expected.\n"),"invsyslin",1)),end
 //
 d=pinv(t(5));
 a=t(2)-t(3)*d*t(4);
index f69cace..31a4f18 100644 (file)
@@ -17,9 +17,9 @@ function [y,R]=kpure(sl,eps)
     sl=ss2tf(sl)
     if size(sl.num,'*') > 1 then error(95,1),end
   else
-    error('kpure: first argument must be a linear dynamical system')
+    error(gettext(msprintf("%s: Wrong type for argument #%d: Linear dynamic system expected.\n"),"kpure",1))
   end
-  if sl.dt<>'c' then error('System must be continuous'),end
+  if sl.dt<>'c' then error(msprintf(gettext("%s: System must be continuous.\n"),"kpure")),end
 
   //build the Routh table of the given system
   r=routh_t(sl,poly(0,'k')),
@@ -28,7 +28,7 @@ function [y,R]=kpure(sl,eps)
   //Check of infinite solution
   for i=1:s,
     if and(coeff(r(i,:))==0) then 
-      error('kpure: ---> infinite solution'),
+      error(msprintf(gettext("%s: Infinite solution.\n"),"kpure")),
     end
   end,
 
index 15a7630..e746077 100644 (file)
@@ -16,7 +16,7 @@ case 'r' then [n,d,dom]=n(2:4)
 case 'lss' then n=ss2tf(n);[n,d,dom]=n(['num','den','dt'])
 else error(97,1),
 end;
-if dom<>'c' then error('System must be continuous'),end
+if dom<>'c' then error(gettext(msprintf("%s: System must be continuous.\n"),"krac2")),end
 if size(n,'*')<>1 then error(95,1),end
 
 x=[];
index 2694fdc..91fc25f 100644 (file)
@@ -19,14 +19,14 @@ function [k,x,err]=leqr(p12,vx)
 
 [lhs,rhs]=argn(0);
 p121=p12(1);
-if p121(1)<>'lss' then error('leqr: state-space only!');end
+if p121(1)<>'lss' then error(msprintf(gettext("%s: State-space only.\n"),"leqr"));end
 [a,b2,c1,d12]=p12(2:5);
 [n,nu]=size(b2);
 [ny,n]=size(c1);
 dom=p12(7);
 if dom==[] then 
   dom='c';
-  warning('leqr: time domain (p12(7)) is not defined (assumed continuous)')
+  warning(msprintf(gettext("%s: Time domain not defined: Assumed continuous.\n."),"leqr"))
 end
 select dom
 //      continuous
@@ -42,13 +42,13 @@ case 'c' then
 
   [bige,biga,dummy,z]=balanc(bige,biga);
   [w,k]=schur(biga,bige,'c');
-  if k<>n then warning('leqr: stable subspace too small!');...
+  if k<>n then warning(msprintf(gettext("%s: Stable subspace too small.\n"),"leqr"));...
             k=[];w=[];err=[];return;
   end
 
   ws=z*w(:,1:n);
   x12=ws(1:n,:);
-  if rcond(x12) < 1.d-6 then warning('leqr: bad conditioning!');end
+  if rcond(x12) < 1.d-6 then warning(msprintf(gettext("%s: Bad conditionning.\n"),"leqr"));end
   k=ws(2*n+1:2*n+nu,:)/x12;
   x=ws(n+1:2*n,:)/x12;
   if lhs~=3 then return;end
@@ -67,17 +67,17 @@ case 'd' then
         s', 0*b2', r];
   [bige,biga,dummy,z]=balanc(bige,biga);
   [w,k]=schur(biga,bige,'d');
-  if k<>n then warning('leqr: stable subspace too small!');...
+  if k<>n then warning(msprintf(gettext("%s: Stable subspace too small.\n"),"leqr"));...
             k=[];w=[];err=[];return;end
   ws=z*w(:,1:n);
   x12=ws(1:n,:);
-  if rcond(x12) <1.d-6 then warning('leqr: bad conditioning!');...
+  if rcond(x12) <1.d-6 then warning(msprintf(gettext("%s: Bad conditionning.\n"),"leqr"));...
             k=[];w=[];return;end
 
   k=ws(2*n+1:2*n+nu,:)/x12;
   x=ws(n+1:2*n,:)/x12;
   if norm(x-x',1)>0.0001 then 
-        warning('leqr: x non symmetric!');...
+        warning(msprintf(gettext("%s: %s non symmetric.\n"),"leqr","x"));...
         k=[];w=[];return;
   end
 
index 0d69758..56c203c 100644 (file)
@@ -21,7 +21,7 @@ g1=g(1);
 if g1(1)=='r' then g=tf2ss(g);end
       if type(g)==1,if norm(g)==0,n=0,return,end,end,
       if g(7)=='d' then
-         error(gettext(msprintf("%s: system must be continuous"),"linf"))
+         error(gettext(msprintf("%s: System must be continuous.\n"),"linf"))
       else
          g(7)='c'
       end
index 085502b..eecca3f 100644 (file)
@@ -17,13 +17,13 @@ function K=lqg(P,r)
   elseif P(1)(1)=='lss'
     flag=%t
   else
-    error('First argument must be a linear system.')
+       error(gettext(msprintf("%s: Wrong type for argument #%d: Linear system expected.\n"),"lqg",1))
   end
 [A,B1,B2,C1,C2,D11,D12,D21,D22]=smga(P,r);
-if norm(D11,1) <> 0 then warning('lqg: D11 is not zero! (set to zero)');end
+if norm(D11,1) <> 0 then warning(msprintf(gettext("%s: %s is not zero! (set to zero)"),"lqg","D11"));end
 //if norm(D22,1) <> 0 then warning('lqg: D22 is not zero!');end
 dom=P(7);
-if dom==[] then warning('lqg: time domain unspecified, assumed continuous');
+if dom==[] then warning(msprintf(gettext("%s: Time domain not defined: Assumed continuous.\n."),"lqg"))
                dom='c';end
 P12=syslin(dom,A,B2,C1,D12);
 Kc=lqr(P12);
index ae7b1f4..ff3234a 100644 (file)
@@ -36,7 +36,7 @@ C1=Qhalf(:,1:nx);D12=Qhalf(:,nx+1:nx+nu);
 C2=C;
 D11=0*C1*B1;
 dom=P22(7);
-if dom==[] then warning('lqg2stan: time domain (?) assumed continuous');end
+if dom==[] then warning(msprintf(gettext("%s: Time domain not defined: Assumed continuous.\n."),"lqg2stan"));end
 P=syslin(dom,A,real([B1,B2]),real([C1;C2]),real([D11,D12;D21,D22]));
 m=size(C2*B2);
 if flag==1 then
index 4f78fca..645c0c5 100644 (file)
@@ -1,3 +1,12 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 
+// 
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at    
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
 function X = lyap(A,C,flag)
 //  solve  A'*X+X*A=C if flag=='c' or  A'*X*A-X=C if flag=='d'
   if argn(2)<>3 then error(39),end
index cc99b3a..2213be1 100644 (file)
@@ -15,23 +15,23 @@ select type(a)
 case 16
   flag=a(1)
   if flag(1)<>'lss' then error(91,1),end
-  if lhs<>1 then error('output: sle'),end;
+  if lhs<>1 then error(msprintf(gettext("%s: Wrong number of output arguments.\n"),"minreal")),end;
   select rhs
   case 1 then istol=0
   case 2 then istol=1,tol=b,
-  else error('2 inputs to minreal: sl [,tol]'),
+  else error(msprintf(gettext("%s: Wrong number of input arguments: %d or %d expected.\n"),"minreal",1,2)),
   end;
   [a,b,c,d,x0,dom]=a(2:7);
   if dom==[] then error(96,1),end
   domaine='c';if dom<>'c' then domaine='d',end
 case 1
   if lhs<>3 then
-    error('3 outputs to minreal: ae,be,ce'),
+        error(msprintf(gettext("%s: Wrong number of output arguments: %d expected.\n"),"minreal",3)),
   end;
   select rhs
   case 4 then istol=0
   case 5 then istol=1,
-  else error('4 or 5 outputs :a,b,c,domaine [,tol]'),
+  else          error(msprintf(gettext("%s: Wrong number of input arguments: %d or %d expected.\n"),"minreal",4,5)),
   end;
 else 
   error(91,1)
index a17346d..e36e3dc 100644 (file)
@@ -15,7 +15,7 @@ flag=Sl(1);
  select rhs
    case 1 then tol=[]
    case 2 then tol=tol
-   else error('1 or 2 inputs: sl [,tol]')
+   else error(msprintf(gettext("%s: Wrong number of input arguments: %d or %d expected.\n"),"minss",1,2))
  end;
  [a,b,c,d,x0,dom]=Sl(2:7)
 //
index 5bb67a2..b4e4ec7 100644 (file)
@@ -1,3 +1,13 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) ENPC - 
+// 
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at    
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+
 function z=narsimul(x1,x2,x3,x4,x5,x6,x7,x8)
 //function z=narsimul(a,b,d,sig,u,up,yp,ep)
 //   or 
@@ -15,7 +25,7 @@ function z=narsimul(x1,x2,x3,x4,x5,x6,x7,x8)
 [lhs,rhs]=argn(0)
 // switch to ar representation 
 if type(x1)<>15&type(x1)<>16 then 
-   if rhs < 5, write(%io(2),'arsimul: error expecting at least 5 arguments');
+   if rhs < 5, error(msprintf(gettext("%s: Wrong number of input arguments: At least %d expected.\n"),"narsimul",5));
        return;end;
    ar=armac(x1,x2,x3,size(x1,'r'),size(x5,'r'),x4);
    if rhs==5,z=narsimul(ar,x5);return;end
@@ -28,7 +38,7 @@ a=x1('a');b=x1('b');d=x1('d');sig=x1('sig');
 u=x2;
 [mmu,Nu]=size(u);
 if mmu<>x1('nu') then 
-  write(%io(2),'number of rows of u are incompatible with arma object');
+    error(msprintf(gettext("%s: Number of rows of %s are incompatible with %s object.\n"),"arsimul","u",'arma"));
   return;
 end;
 // dimensions 
@@ -56,24 +66,21 @@ if rhs <=5,
    up=0*ones(mmu,(bdeg-1));
 else
    if size(up)<>[mmu,(bdeg-1)],
-    write(%io(2)," up=[u(0),u(-1),..,] must be of dimension ("...
-    +strin(mmu)+','+string(bdeg-1));
+    error(msprintf(gettext("%s: %s must be of dimension (%s, %s).\n"),"narsimul","up=[u(0),u(-1),..,]",string(mmu),string(bdeg-1)));
     return;end
 end
 if rhs <=6,
    yp=0*ones(al,(adeg-1));
 else
   if size(yp)<>[al,(adeg-1)]
-    write(%io(2)," yp=[y(0),y(-1),..,] must be of dimension ("...
-    +strin(al)+','+string(adeg-1));
+    error(msprintf(gettext("%s: %s must be of dimension (%s, %s).\n"),"narsimul","yp=[y(0),y(-1),..,]",string(al),string(adeg-1)));
     return;end
 end
 if rhs <=7,
    ep=0*ones(al,(ddeg-1));
 else
   if size(ep)<>[al,(ddeg-1)]
-    write(%io(2)," ep=[e(0),e(-1),..,] must be of dimension ("...
-    +strin(al)+','+string(ddeg-1));
+    error(msprintf(gettext("%s: %s must be of dimension (%s, %s).\n"),"narsimul","ep=[e(0),e(-1),..,]",string(al),string(ddeg-1)));
     return;end
 end;
 // 
index 3dabfaa..cb36c49 100644 (file)
@@ -17,8 +17,8 @@ function [x]=nehari(r,tol)
 
 [lhs,rhs]=argn(0);
 r1=r(1);
-if r1(1)<>'lss' then error('State-space only!'),end
-if r(7)=='d' then error('Continuous-time only!'),end
+if r1(1)<>'lss' then error(msprintf(gettext("%s: State-space only.\n"),"nehari")),end
+if r(7)=='d' then error(msprintf(gettext("%s: Continuous-time only.\n'),"nehari")),end
 r(7)='c'
 //
 if rhs==1 then tol=1e-6,end,
@@ -46,7 +46,7 @@ if rhs==1 then tol=1000*%eps,end,
 if sl==0 then nk=0,return,end,
 lf=spec(sl(2)),
 if mini(abs(lf))<=tol then
-     error('Imaginary axis poles!'),end,
+     error(msprintf(gettext("%s: Imaginary axis poles.\n"),"nehari")),end,
 if maxi(real(lf))<tol then nk=0,return,end,
 sl=dtsi(sl);
 lc=ctr_gram(sl),lo=obs_gram(sl),
index 4ac9f58..8073aaf 100644 (file)
@@ -12,7 +12,7 @@ function o=obsv_mat(a,c)
 [lhs,rhs]=argn(0)
 select type(a)
  case 1  then
-    if rhs==1 then error('2 arguments : a,c'),end
+    if rhs==1 then error(msprintf(gettext("%s: Wrong number of input arguments: %d expected"),"obsv_mat",2)),end
     [m,n]=size(a)
     if m<>n then error(20,1),end
     [mb,nb]=size(c);if nb<>n then error(60),end
@@ -21,7 +21,8 @@ select type(a)
     if flag(1)<>'lss' then error(91,1),end
     [a,c]=a([2,4])
     [n,n]=size(a)
- else error('(a,c) pair or syslin list')
+else error(msprintf(gettext("%s: Wrong type of input arguments: %s,%s pair or syslin list.\n"),"obsv_mat","a","c"))
+
 end;
 o=c;for k=1:n-1, o=[c;o*a],end
 endfunction
index 786aaf9..481a67b 100644 (file)
@@ -20,7 +20,7 @@ if rhs <=2;dflag=0;end
 [n1,n2]=size(x)
 [p1,p2]=size(y)
 if n2<>p2 then 
-  error("reglin: [n1,n2]=size(x),[p1,p2]=size(y), n2 must be equal to p2");
+  error(msprintf(gettext("%s: Wrong value for input arguments: %s equal to %s expected.\n"),"reglin","[n1,n2]=size(x),[p1,p2]=size(y), n2","p2"));
 end;
 
 xmoy=sum(x,2)/n2
index 04ff9e1..ffee2cf 100644 (file)
@@ -42,7 +42,7 @@ case 3 then
   pas=pas_def
 case 4 then ,
 else 
-  error('calling sequences: sys,fmin,fmax [,pas] or sys,frq')
+  error(msprintf(gettext("%s: Wrong number of input arguments: %d to %d expected.\n"), "repfreq",1,4))
 end;
 splitf=1
 if rhs<>2 then
@@ -61,7 +61,7 @@ if rhs<>2 then
       frq= [exp(l10*((log(-fmax)/l10):pas:(log(-fmin)/l10))) -fmin];
       frq=-frq($:-1:1);
     elseif fmin >= fmax then
-      error('repfrq: fmin must be < fmax');
+         error(msprintf(gettext("%s: Wrong value for input argument: %s < %s expected.\"),"reqfreq","fmin","fmax"));
     else
       fmin=max(eps,fmin);
       frq=[exp(l10*((log(fmin)/l10):pas:(log(fmax)/l10))) fmax];
index f9856ce..7d60e8a 100644 (file)
@@ -53,7 +53,7 @@ if RHS==1 then
    if cond(W1) > 1.d+10*norm(H,1) then Hb=H,W1=eye(W1);end
  
    [W2,n]=schur(Hb,'c');Hb=[]
-   if n<>n1 then write(%io(2),'Stationary Riccati solver fails!!!!');end
+   if n<>n1 then mprintf(gettext("%s: Stationary Riccati solver failed.\n"),"ric_desc");end
    W1=W1*W2;W2=[]
    UV=W1(:,1:n1);W1=[]
    X2=UV(1:n1,:);X1=UV(n1+1:n2,:);UV=[];
index 6a35bfc..73e073c 100644 (file)
@@ -25,9 +25,9 @@ if RHS==1 then
      l=l-1;n1=l;
      end
 end
-if n1<>n then warning('sm2ss: cannot find n!');end
+if n1<>n then warning(msprintf(gettext("%s: Cannot find %s.\n"),"sm2ss","n"));end
 E=E(1:n,1:n);
-if E<>eye(n,n) then error('sm2ss: not state-space system?');end
+if E<>eye(n,n) then error(msprintf(gettext("%s: Not state-space system?.\n"),"sm2ss"));end
 A=coeff(sysmat(1:n,1:n),0);
 B=coeff(sysmat(1:n,n+1:nc),0);
 C=coeff(sysmat(n+1:nl,1:n),0);
index 60e4421..9032782 100644 (file)
@@ -15,7 +15,7 @@ function S=ss2des(Sl,flag)
 // Copyright INRIA
 [LHS,RHS]=argn(0);
 if RHS==1 then flag=[];end
-if RHS==2&flag<>"withD" then warning("ss2des: unknown flag!");end
+if RHS==2&flag<>"withD" then warning(msprintf(gettext("%s: Wrong value for input argument #%d: ''%s'' expected.\n"),"ss2des",2,"withD"));end
 Ds=Sl(5);
 if type(Ds)==1 then
   if norm(Ds,1)==0 then S=Sl;return;end
index 398c765..53d3d2d 100644 (file)
@@ -34,7 +34,7 @@ function [h,num,den]=ss2tf(sl,rmax)
   end
   flag=sl(1);
   if (type(sl)<>16)|flag(1)<>'lss' then
-    error('First argument must be in state-space form')
+    error(msprintf(gettext("%s: Wrong type for input argument #%d: State-space form expected.\n"),"ss2tf",1));
   end
   if sl(3)==[] then h=sl(5);num=sl(5);den=eye(sl(5));return;end
   if sl(4)==[] then h=sl(5);num=sl(5);den=eye(sl(5));return;end
index b0a255c..580621f 100644 (file)
@@ -37,7 +37,7 @@ if typeof(A)~='state-space' then
 [ns,nc,U,sl]=st_ility(syslin('c',A,B,[]));
 [nx,nx]=size(A);[nn,nu]=size(B);
 if ns<nx then 
-warning('system not stabilizable (or detectable)=>stabilizing the stabilizable part');
+  warning(msprintf(gettext("%s: System not stabilizable (or detectable) => Stabilizing the stabilizable part.\n"),"stabil"));
 end
 if RHS==2 then 
   alfa=-ones(1,nx);
index a23677e..a8b5fa5 100644 (file)
@@ -36,7 +36,7 @@ function [svm] = svplot(Sl,w)
 // Compute the singular values of the frequency response
 select Sl(7)
 case []
-   warning('svplot: time domain not defined-->assumed continuous');
+   warning(msprintf(gettext("%s: Time domain not defined: Assumed continuous.\n."),"svplot"));
 if nargin == 1
    w = logspace(-3,3);
 end
index 1a8d1f4..6af6554 100644 (file)
@@ -13,10 +13,10 @@ function X = sylv(A,B,C,flag)
   if size(A,1)<> size(A,2) then error(20,1),end
   if size(B,1)<> size(B,2) then error(20,2),end
   if size(C,1)<> size(A,1) then 
-    error(msprintf(gettext("%s: First and third input arguments have incompatible number of rows.\n"),"sylv"))
+    error(msprintf(gettext("%s: Wrong values for input arguments #%d and #%d: Incompatible number of rows.\n"),"sylv",1,3))
   end
   if size(C,2)<> size(B,2) then 
-       error(msprintf(gettext("%s: Second and third input arguments have incompatible number of columns.\n"),"sylv"))
+       error(msprintf(gettext("%s: Wrong values for input arguments #%d and #%d: Incompatible number of columns.\n"),"sylv",2,3))
   end
     
   if flag=='c' then 
index 92e9d69..efc633a 100644 (file)
@@ -62,10 +62,10 @@ select s2('dt')
 end;
 select t1+4*t2
 case 0 then,
-case 1 then  warning('time domains are not compatible')
+case 1 then  warning(msprintf(gettext("%s: time domains are not compatible.\n"), "sysconv"))
 case 2 then  s2=dscr(s2,s1('dt'))
 case 3 then  s1('dt')='c'
-case 4 then  warning('time domains are not compatible')
+case 4 then  warning(msprintf(gettext("%s: time domains are not compatible.\n"), "sysconv"))
 case 5 then,
 case 6 then  s2('dt')=s1('dt')
 case 7 then  s1('dt')='d'
@@ -73,7 +73,7 @@ case 8 then  s1=dscr(s1,s2('dt'))
 case 9 then  s1('dt')=s2('dt')
 case 10 then
   if s1('dt')<>s2('dt') then
-    warning('time domains are not compatible')
+    warning(msprintf(gettext("%s: time domains are not compatible.\n"), "sysconv"))
   end
 case 11 then s1('dt')=s2('dt')
 case 12 then s2('dt')='c'
index 2accec7..87864ed 100644 (file)
@@ -17,12 +17,12 @@ case 1 then  //sampled system
   if size(domain,'*')<=2 then
     tp=domain
   else
-    error(msprintf(gettext("%s: Wrong type for first input argument: Scalar expected.\n"),"syslin"))
+    error(msprintf(gettext("%s: Wrong type for input argument #%d: A real expected.\n"),"syslin",1))
   end
   z='z'
 case 10 //continuous or discrete
   if size(domain,'*')<>1 then
-    error(msprintf(gettext("%s: Wrong type for first input argument: Single string expected.\n"),"syslin"))
+    error(msprintf(gettext("%s: Wrong type for input argument #%d: A string expected.\n"),"syslin",1))
   end
   domain=part(domain,1)
   select domain
@@ -31,10 +31,10 @@ case 10 //continuous or discrete
   case 'd' then 
     z='z'
   else 
-    error(domain+' : unknown time domain')
+    error(msprintf(gettext("%s: %s: Unknown time domain.\n"), "syslin",domain))
   end;
 else 
-  error(msprintf(gettext("%s: Wrong type for first input argument: Single, Scalar or [] matrix expected.\n"),"syslin"))
+  error(msprintf(gettext("%s: Wrong type for input argument #%d: Single, Scalar or [] matrix expected.\n"),"syslin",1))
 end;
 //============================================================================
 if rhs==2 then //syslin(domaine,sys)
@@ -46,22 +46,22 @@ if rhs==2 then //syslin(domaine,sys)
       sl=a;
       sl('dt')=domain
        else
-         error(msprintf(gettext("%s: Wrong type for second input argument: Linear state space or a transfer function expected.\n"),"syslin"))
+         error(msprintf(gettext("%s: Wrong type for input argument #%d: Linear state space or a transfer function expected.\n"),"syslin",2))
     end
   end
 //============================================================================
 elseif rhs==3 then // syslin(domaine,num,den)
   num=a;den=b
   if type(num)>2 | type(den)>2 then
-    error('syslin : N and D must be matrix of numbers or of polynomials')
+    error(msprintf(gettext("%s: %s and %s must be matrix of numbers or of polynomials.\n"),"syslin","N","D"))
   end
   if or(size(num)<>size(den)) then
-    error('syslin : N and D have inconsistent dimensions')
+    error(msprintf(gettext("%s: %s and %s have inconsistent dimensions.\n"),"syslin","N","D"))
   end
 
   if type(num)==2 & type(den)==2 then
     if varn(num)<>varn(den) then 
-      error('syslin : N and D have inconsistent formal variable names')
+         error(msprintf(gettext("%s: %s and %s have inconsistent formal variable names.\n"),"syslin","N","D"))
     end
   end
   if type(num)==1 then
@@ -75,47 +75,48 @@ elseif rhs==3 then // syslin(domaine,num,den)
 //============================================================================
 elseif rhs>3 then // syslin(domaine,A,B,C [,D [X0]])
   if type(a)<>1 then
-    error('syslin : A must be a square matrix of numbers')
+    error(msprintf(gettext("%s: Wrong type for input argument #%d: Matrix of real expected.\n"),"syslin",2))
   end
   [ma,na]=size(a);
   if ma<>na then 
-    error('syslin : A must be a square matrix of numbers')
+       error(msprintf(gettext("%s: Wrong type for input argument #%d: Square Matrix of real expected.\n"),"syslin",2))
   end
   if type(b)<>1 then
-    error('syslin : B must be a  matrix of numbers')
+       error(msprintf(gettext("%s: Wrong type for input argument #%d: Matrix of real expected.\n"),"syslin",3))
   end
   [mb,nb]=size(b);
   if na<>mb&mb<>0 then 
-    error('syslin : row dimension of B do not agree dimensions of A')
+    error(msprintf(gettext("%s: Wrong size for input argument #%d and #%d.\n"),"syslin",2,3));
   end
   if type(c)<>1 then
-    error('syslin : C must be a  matrix of numbers')
+       error(msprintf(gettext("%s: Wrong type for input argument #%d: Matrix of real expected.\n"),"syslin",4))
   end
   [mc,nc]=size(c);
   if na<>nc&nc<>0 then 
-    error('syslin : column dimension of C do not agree dimensions of A')
+       error(msprintf(gettext("%s: Wrong size for input argument #%d and #%d.\n"),"syslin",2,4));
   end
   if rhs<6 then
     x0=0*ones(na,1)
   else
     if type(x0)>1 then
-      error('syslin : X0 must be a vector of numbers')
+         error(msprintf(gettext("%s: Wrong type for input argument #%d: Matrix of real expected.\n"),"syslin",6))
     end
     [mx,nx]=size(x0);
     if mx<>na|nx<>min(na,1) then 
-      error('syslin : dimensions of X0 do not agree')
+         error(msprintf(gettext("%s: Wrong size for input argument #%d.\n"),"syslin",6));
     end
   end
   if rhs<5  then
     d=0*ones(mc,nb)
   else
     if type(d)>2 then
-      error('syslin : D must be a  matrix of numbers or polynomials')
+         error(msprintf(gettext("%s: Wrong type for input argument #%d: Matrix of real and polynomials expected.\n"),"syslin",5))
     end
     [md,nd]=size(d);
     if c*b<>[] then
       if mc<>md|nb<>nd then 
-        error('syslin : column dimension of D do not agree dimensions of B or C')
+               error(msprintf(gettext("%s: Wrong size for input argument #%d, #%d and #%d.\n"),"syslin",3,4,5));
+
       end
     end
   end
index 3ced261..7e348de 100644 (file)
@@ -22,10 +22,10 @@ case 10 then
   case 's' then
     u=ones(npt,1)
   else
-    error(msprintf(gettext("%s: Wrong value for second input argument: ''%s'' or ''%s'' expected.\n"),"time_id","i","s"))
+    error(msprintf(gettext("%s: Wrong value for input argument¬†#%d: ''%s'' or ''%s'' expected.\n"),"time_id",2,"i","s"))
   end
 else
-  error(msprintf(gettext("%s: Wrong value for second input argument: ''%s'' or ''%s'' expected.\n"),"time_id","i","s"))
+  error(msprintf(gettext("%s: Wrong value for input argument #%d: ''%s'' or ''%s'' expected.\n"),"time_id",2,"i","s"))
 end
 if y(1)==0 then // strictly proper case
   m(npt-1,2*n)=0;
index 5b89587..409dd6d 100644 (file)
@@ -85,8 +85,8 @@ D11=D1(:,reject);D21=Dnew(:,reject);
 C11=C1new(:,1:ns);C21=Cnew(:,1:ns);
 //N s.t. [I,N]*[C11 D11;C21 D21]=[0,0] 
 N=lowlevel();
-disp(gettext("residual norm = "));
-disp(norm([eye(size(N,1),size(N,1)),N]*[C11,D11;C21,D21]));
+mprintf(gettext("%s: Residual norm = "),"ui_observer");
+mprintf(norm([eye(size(N,1),size(N,1)),N]*[C11,D11;C21,D21]));
 D12=D1(:,not_reject);C12=C1new(:,ns+1:$);
 UIobs('C')=[C12+N*C22];UIobs('D')=[D12+N*D22,-N];
 
@@ -99,9 +99,9 @@ colN=size(C21,1);rowN=size(C11,1);
 if size(K,1) > rowN then K=K(1:rowN,:);end
 Kleft=K(:,1:size(K,1))
 if size(Kleft,'*')==1 & abs(Kleft) <1.d-8 then 
-N=[];error(gettext("Bad conditioning!"));return;end
+N=[];error(msprintf(gettext("%s: Bad conditionning.\n"),"ui_observer"));return;end
 if rcond(Kleft) <= 1.d-10 then 
-       warning(gettext("Bad conditioning!"));
+       warning(msprintf(gettext("%s: Bad conditionning.\n"),"ui_observer"));
        K1=pinv(Kleft)*K;N=K1(:,size(K,1)+1:$);return
 end
 K1=inv(Kleft)*K;   //test conditioning here!