bug 8608 - dec2hex, hex2dec, dec2oct, oct2dec, code have been simplified and optimized. 87/2787/3
Allan CORNET [Thu, 16 Dec 2010 14:14:20 +0000 (15:14 +0100)]
Change-Id: I55f539f24160ce689c6f7565351bbebb39463979

scilab/CHANGES_5.4.X [new file with mode: 0644]
scilab/RELEASE_NOTES_5.4.X [new file with mode: 0644]
scilab/modules/elementary_functions/macros/dec2hex.sci
scilab/modules/elementary_functions/macros/dec2oct.sci
scilab/modules/elementary_functions/macros/hex2dec.sci
scilab/modules/elementary_functions/macros/oct2dec.sci
scilab/modules/elementary_functions/tests/unit_tests/hex2dec.dia.ref [new file with mode: 0644]
scilab/modules/elementary_functions/tests/unit_tests/hex2dec.tst [new file with mode: 0644]

diff --git a/scilab/CHANGES_5.4.X b/scilab/CHANGES_5.4.X
new file mode 100644 (file)
index 0000000..a930363
--- /dev/null
@@ -0,0 +1,8 @@
+            Changes between version 5.3.X and 5.4.0 of Scilab
+            =================================================
+
+
+Bug Fixes:
+==========
+
+* bug 8608 - dec2hex, hex2dec, dec2oct, oct2dec, code have been simplified and optimized.
\ No newline at end of file
diff --git a/scilab/RELEASE_NOTES_5.4.X b/scilab/RELEASE_NOTES_5.4.X
new file mode 100644 (file)
index 0000000..fc3db26
--- /dev/null
@@ -0,0 +1,4 @@
+                      Scilab 5.4.0 Release_Notes
+                      ==========================
+
+
index a86592d..f2c0e57 100644 (file)
@@ -1,5 +1,6 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) INRIA
+// Copyright (C) DIGITEO - 2010 - Allan CORNET
 //
 // This file must be used under the terms of the CeCILL.
 // This source file is licensed as described in the file COPYING, which
 //
 // =============================================================================
 
-function h=dec2hex(v)
-       
-       rhs = argn(2);
-       
-       // check the number of input arguments
-       if rhs<>1 then
-               error(msprintf(gettext("%s: Wrong number of input argument(s): %d expected.\n"),"dec2hex",1));
-       end
-       
-       [nr,nc] = size(v);
-       
-       if (find(v<0) <> []) | (norm(round(v)-v,1) > norm(round(v),1)*2*%eps) then
-               error(msprintf(gettext("%s: Wrong value for input argument #%d: Non-negative integer matrix expected.\n"),"dec2hex",1));
-       end
-       
-       v  = v(:);
-       kz = find(v<>0)
-       v  = v(kz);
-       n  = 1 + fix(log(v)/log(16));
-       s  = cumprod([1,16*ones(1,max(n)-1)]);
-       z  = "0";
-       h  = z(ones(nr*nc,1));
-       
-       for ii=1:size(v,'*')
-               
-               nn = n(ii);
-               d  = v(ii);
-               g  = s(1:nn);
-               
-               for i = 1:nn
-                       x=s(nn-i+1)
-                       g(i) = fix(d/x);
-                       d = d-g(i)*x;
-               end
-               
-               k         = find(g>9);
-               g(k)      = -g(k);
-               h(kz(ii)) = code2str(g);
-               
-       end
-       
-       h=matrix(h,nr,nc);
-       
+function h = dec2hex(v)
+
+  rhs = argn(2);
+
+  // check the number of input arguments
+  if rhs <> 1 then
+    error(msprintf(gettext("%s: Wrong number of input argument(s): %d expected.\n"),"dec2hex",1));
+  end
+
+  [nr, nc] = size(v);
+
+  if (find(v<0) <> []) | (norm(round(v)-v,1) > norm(round(v),1)*2*%eps) then
+    error(msprintf(gettext("%s: Wrong value for input argument #%d: Non-negative integer matrix expected.\n"),"dec2hex",1));
+  end
+
+  h = [];
+  for ii = 1:size(v,'*')
+    h(ii) = msprintf("%X", v(ii));
+  end
+  h = matrix(h, nr, nc);
+
 endfunction
index 410ca36..053415d 100644 (file)
@@ -1,5 +1,6 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) INRIA - Pierre MARECHAL
+// Copyright (C) DIGITEO - 2010 - Allan CORNET
 //
 // This file must be used under the terms of the CeCILL.
 // This source file is licensed as described in the file COPYING, which
@@ -8,46 +9,28 @@
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
 // =============================================================================
-// Author : Pierre MARECHAL
 // dec2oct function
 // =============================================================================
 
 function y = dec2oct(x)
-       
-       rhs = argn(2);
-       
-       // check the number of input arguments
-       if rhs<>1 then
-               error(msprintf(gettext("%s: Wrong number of input argument(s): %d expected.\n"),"dec2oct",1));
-       end
-       
-       if or(type(x)<>8) & (or(type(x)<>1) | or(x<0) ) then
-               error(msprintf(gettext("%s: Wrong value for input argument #%d: Scalar/vector/matrix of positive integers expected.\n"),"dec2oct",1));
-       end
-       
-       [nr,nc] = size(x);
-       y       = emptystr(nr,nc);
-       
-       for i=1:nr
-               for j=1:nc
-                       
-                       if x(i,j) < 8 then
-                               y(i,j) = string(x(i,j));
-                               continue;
-                       end
-                       
-                       x_bin          = dec2bin(x(i,j));
-                       x_bin_length   = length(x_bin);
-                       
-                       // Add 0 to the right of the string
-                       while (modulo(length(x_bin),3) ~= 0) ,
-                               x_bin = '0' + x_bin;
-                       end
-                       
-                       x_bin_splitted = strsplit(x_bin,3*[1:(length(x_bin)/3-1)]);
-                       y(i,j)         = code2str(bin2dec(x_bin_splitted));
-                       
-               end
-       end
-       
+
+  rhs = argn(2);
+
+  // check the number of input arguments
+  if rhs <> 1 then
+    error(msprintf(gettext("%s: Wrong number of input argument(s): %d expected.\n"),"dec2oct",1));
+  end
+
+  if or(type(x) <> 8) & (or(type(x) <> 1) | or(x < 0) ) then
+    error(msprintf(gettext("%s: Wrong value for input argument #%d: Scalar/vector/matrix of positive integers expected.\n"),"dec2oct",1));
+  end
+
+  [nr, nc] = size(x);
+
+  y = [];
+  for ii = 1:size(x, '*')
+    y(ii) =  msprintf("%o", x(ii));
+  end
+  y = matrix(y, nr, nc);
+
 endfunction
index 113b288..7fa5e19 100644 (file)
@@ -1,5 +1,6 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) INRIA
+// Copyright (C) DIGITEO - 2010 - Allan CORNET
 //
 // This file must be used under the terms of the CeCILL.
 // This source file is licensed as described in the file COPYING, which
 //
 // hex2dec function
 //
-// hex2dec(h) returns in vector d the numbers corresponding to the 
+// hex2dec(h) returns in vector d the numbers corresponding to the
 // hexadecimal representation h.
 //
 // -Input :
-//    str : a string (or a vector/matrix of strings)
+//  str : a string (or a vector/matrix of strings)
 // -Output :
-//    y : a scalar/vector/matrix
+//  y : a scalar/vector/matrix
 //
 // =============================================================================
 
-function d=hex2dec(h)
-       
-       if type(h)<> 10 then
-               error(msprintf(gettext("%s: Wrong type for input argument #%d: Matrix of strings expected.\n"),"hex2dec",1));
-       end
-       
-       [nr,nc] = size(h)
-       n       = length(h)
-       p       = cumprod([1,16*ones(1,max(n)-1)]);
-       d       = zeros(h);
-       
-       for i=1:nr
-               for j=1:nc
-                       s = abs(str2code(h(i,j)));
-                       if max(s)>15 then
-                               error(msprintf(gettext("%s: Wrong value for input argument #%d: Valid hexadecimal representations expected.\n"),"hex2dec",1));
-                       end
-                       d(i,j) = p(n(i,j):-1:1)*s;
-               end
-       end
-       
+function d = hex2dec(h)
+
+  if type(h)<> 10 then
+    error(msprintf(gettext("%s: Wrong type for input argument #%d: Matrix of strings expected.\n"),"hex2dec",1));
+  end
+
+  [nr, nc] = size(h);
+
+  d = [];
+
+  for i = 1:size(h, "*")
+    r = msscanf(h(i), "%X");
+    if r <> [] then
+      d(i) = r;
+    else
+      error(msprintf(gettext("%s: Wrong value for input argument #%d: Valid hexadecimal representations expected.\n"), "hex2dec", 1));
+    end
+  end
+
+  d = matrix(d, nr, nc);
+
 endfunction
index 94c19ee..b3d3f95 100644 (file)
@@ -1,6 +1,7 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) INRIA - Farid BELAHCENE
-// 
+// Copyright (C) DIGITEO - 2010 - Allan CORNET
+//
 // 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
 // octal representation of o.
 //
 // -Input :
-//    str : a string (or a vector/matrix of strings)
+//  str : a string (or a vector/matrix of strings)
 // -Output :
-//    y : a scalar/vector/matrix
+//  y : a scalar/vector/matrix
 //
 // =============================================================================
 
-function d=oct2dec(o)
-       
-       if type(o)<> 10 then
-               error(msprintf(gettext("%s: Wrong type for input argument #%d: Matrix of strings expected.\n"),"oct2dec",1));
-       end
-       
-       [nr,nc] = size(o)
-       n       = length(o)
-       p       = cumprod([1,8*ones(1,max(n)-1)]);
-       d       = zeros(o);
-       
-       for i=1:nr
-               for j=1:nc
-                       s = abs(str2code(o(i,j)));
-                       if max(s)>7 then
-                               error(msprintf(gettext("%s: Wrong value for input argument #%d: Valid octal representations expected.\n"),"oct2dec",1));
-                       end
-                       d(i,j) = p(n(i,j):-1:1)*s;
-               end
-       end
-       
+function d = oct2dec(o)
+
+  if type(o) <>  10 then
+    error(msprintf(gettext("%s: Wrong type for input argument #%d: Matrix of strings expected.\n"), "oct2dec", 1));
+  end
+
+  [nr, nc] = size(o);
+
+  d = [];
+
+  for i = 1:size(o, "*")
+    r = msscanf(o(i), "%o");
+    if r <> [] then
+      d(i) = r;
+    else
+      error(msprintf(gettext("%s: Wrong value for input argument #%d: Valid octal representations expected.\n"),"oct2dec",1));
+    end
+  end
+
+  d = matrix(d, nr, nc);
+
 endfunction
diff --git a/scilab/modules/elementary_functions/tests/unit_tests/hex2dec.dia.ref b/scilab/modules/elementary_functions/tests/unit_tests/hex2dec.dia.ref
new file mode 100644 (file)
index 0000000..fba5257
--- /dev/null
@@ -0,0 +1,232 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// unit tests for hex2dec function
+// =============================================================================
+// Test 0
+// =============================================================================
+if hex2dec("0") <> 0 then bugmes();quit;end
+// Test 1
+// =============================================================================
+A = [ 1 2 3 ; 89 23 65121 ];
+B = [ "1"  "2" "3" ; "59" "17" "FE61" ];
+if hex2dec(B) <> A then bugmes();quit;end
+// Test 2
+// =============================================================================
+A = [ 1 2 3 89 23 65121 ];
+B = [ "1"  "2" "3" "59" "17" "FE61" ];
+if hex2dec(B) <> A then bugmes();quit;end
+// Test 3
+// =============================================================================
+A = [ 1 ; 2 ; 3 ; 89 ; 23 ; 65121 ];
+B = [ "1" ; "2" ; "3" ; "59" ; "17" ; "FE61" ];
+if hex2dec(B) <> A then bugmes();quit;end
+// Test 4
+// =============================================================================
+A = [ ..
+     247243615   59178813   73814918  334319262 ; ..
+     367067990  130823136   66292881  333871474 ; ..
+     276821382  101022451  183246026  217868224 ; ..
+     345630055   53669510  363524362   87166374 ; ..
+     321802717  334520996  277147063   23526258 ; ..
+     219987801  353676395   48328418  344647074 ; ..
+     328818456  143197491  147017548  255106772 ; ..
+      65298229  194387496  124380491  312541844 ; ..
+     253566309  198195410  274231601  248004795 ; ..
+     329018546  340524483  209246764  233210424 ; ..
+      68917430   19863286   78449143   41917980 ; ..
+      73532797   69344001  129084355   22706009 ; ..
+      31235493   33601913   46232268  251223294 ; ..
+      14648804   94560686  223240864  343467260 ; ..
+     237758177  370258413  225944528  303056406 ; ..
+     192016404  350325020  242968746   72953208 ; ..
+     175890925  144570843  320958003  132279967 ; ..
+     112465822  157575263  365490391  181383252 ; ..
+     177438549   71310031  223301232  250971346 ; ..
+     140654032  352385588  273677356  171889525 ; ..
+      13357996  319909624   50483315   28006801 ; ..
+      41840806  273724180  371474062  279598984 ; ..
+     271353089  224789085  210025886   90739988 ; ..
+     202484600   80365127  163693197    5746021 ; ..
+     224935971  112021696  138025989  337401793 ; ..
+     269596959  130886876  146155540   74406004 ; ..
+     202196907  369456773  325377351  342850940 ; ..
+     349212856  226425203  142110960  362570853 ; ..
+     173705323  192594276   17948149  215546130 ; ..
+      93688952   16792706  122515609  365042042 ; ..
+     241581792  332541495   83152525   71436888 ; ..
+      40277118  246845723   77182909  265213089 ; ..
+     358867419  215208899  229985377  255834874 ; ..
+     346095775    3511413  330240879  175663177 ; ..
+        338681  282988726  145884612  349551538 ; ..
+     136784424  287995573  339492886  310489748 ; ..
+     107960345  357441036  153406373  201649298 ; ..
+       1604238  275921983  194061835  243186030 ; ..
+     235833974  277214361  314622918  276111093 ; ..
+     151430579   19176323  168694677  137668494 ; ..
+     234385222   26050550   20873864  207851493 ; ..
+      29561964  351114743   10885165   29900646 ; ..
+     261473965  156769778    6822679   25628885 ; ..
+      72135847  346315566  336118633  180096193 ; ..
+     331127098  116895502    9115986  332731336 ; ..
+      20187981  203177822  203287862  256021955 ; ..
+     107762678  145281276  159503543  259193258 ; ..
+     164457600  328198221   24232248   26213318 ; ..
+     354248772   45106112  234064811   11181232 ; ..
+      23591352  244949977   41081878  285065317 ; ..
+      29090250   47904558  310694202  101226098 ; ..
+      21590619  274183331  281322291  352717718 ; ..
+      18449329  290438278  312819549   38637311 ; ..
+     120986596  143477907  294659266  228749274 ; ..
+     288759183   81533305  115313028   80587279 ; ..
+      37102022  139545277  106800597   18721290 ; ..
+     184651390  340865408   29902522  208242742 ; ..
+     213185880   70984401  120678554  242276132 ; ..
+     118888959   58743252  343502230  140479578 ; ..
+     332926584  252195017  120567792  351375914 ; ..
+     170003791   60757837   17383720  290990387 ; ..
+     204235744  312042987  147110157  120365423 ; ..
+      20946788  262423186  200952702   58048810 ; ..
+      29338958  307753300   76770101  213990349 ; ..
+     275989203  106672623   49603587  116545580 ; ..
+     177657024  170282142  358821712  296545983 ; ..
+     229025395  329694437   64396058  189322474 ; ..
+     209259950  184963850  168068884    6634236 ; ..
+     245721687  185452604  297624624   77327927 ; ..
+     124866086   72105276  197693350  145812874 ; ..
+     334528463   26016548  203861685  363867422 ; ..
+     333769849  280631786  205228266  237129547 ; ..
+      14674905  254831854  353675128  192331930 ; ..
+      52484491  339867335  116248409  281509886 ; ..
+     296932268  180644467   98202856  133562713 ; ..
+     365608317  266271740  140196950  238700500 ; ..
+      79094839   65192070  316028427  203960926 ; ..
+     137297346  141092273  349773801   99196305 ; ..
+     167108821  181005981   90434222  128249166 ; ..
+      89008263  295662489  365378714  103683169 ; ..
+     177864838  346424337  296015099  230349329 ; ..
+     313662167   39634003  139229710  237964930 ; ..
+     220278471  237432567  371527644  213257284 ; ..
+     131074802  139095090   79328279  210169641 ; ..
+     204287160   22727201   41501063  341584507 ; ..
+     163819474   18645359   68151307  330928296 ; ..
+     199651341  158585530   86547957  288659605 ; ..
+      81618514   79297166   19713269  259483352 ; ..
+      53091999  315728369  117203176  366754166 ; ..
+     355362373  256432887  232089592  203011339 ; ..
+     121235949  230987732   43639119  252310752 ; ..
+     370082823  122967398   89850889  201740479 ; ..
+     145694599  131351952  170695481  309514074 ; ..
+     149997312  238846789  267812866  349648654 ; ..
+      24802814  354360823  265678754  106421329 ; ..
+      61028485  285392024  365904681  114120485 ; ..
+     228490888  110478353  108245147  211223757 ; ..
+     366911241  340334739   41605592  115517686 ; ..
+     198692967   85244711  367828438  196146286 ; ..
+     208212109   85049822   25257260  353906709];
+B = [ ..
+       "EBCA35F"    "386FF3D"    "4665386"   "13ED4E9E" ; ..
+      "15E10356"    "7CC33E0"    "3F38C91"   "13E67972" ; ..
+      "107FF586"    "6057AF3"    "AEC1CCA"    "CFC67C0" ; ..
+      "1499E567"    "332EE86"   "15AAF10A"    "5320DA6" ; ..
+      "132E51DD"   "13F062A4"   "1084EDB7"    "166FB72" ; ..
+       "D1CBF59"   "1514AC6B"    "2E16EE2"   "148AE5A2" ; ..
+      "13995F18"    "8890533"    "8C34F4C"    "F349ED4" ; ..
+       "3E45F35"    "B961E28"    "769E54B"   "12A10294" ; ..
+       "F1D1D65"    "BD038D2"   "10587131"    "EC840BB" ; ..
+      "139C6CB2"   "144BFDC3"    "C78DA2C"    "DE68238" ; ..
+       "41B98B6"    "12F16F6"    "4AD09F7"    "27F9E1C" ; ..
+       "462057D"    "4221B01"    "7B1ABC3"    "15A7759" ; ..
+       "1DC9DA5"    "200B979"    "2C172CC"    "EF95CFE" ; ..
+        "DF85E4"    "5A2E1AE"    "D4E62A0"   "1478E4FC" ; ..
+       "E2BE6E1"   "1611B1ED"    "D77A3D0"   "12104616" ; ..
+       "B71F014"   "14E1891C"    "E7B68AA"    "4592D78" ; ..
+       "A7BE1ED"    "89DF9DB"   "13216E33"    "7E26E9F" ; ..
+       "6B4179E"    "964685F"   "15C8F0D7"    "ACFB054" ; ..
+       "A937F55"    "4401ACF"    "D4F4E70"    "EF584D2" ; ..
+       "86235D0"   "1500FA34"   "104FFC2C"    "A3ED375" ; ..
+        "CBD3AC"   "13116EF8"    "3025073"    "1AB5991" ; ..
+       "27E70A6"   "1050B314"   "16243E8E"   "10AA5788" ; ..
+      "102C8501"    "D66025D"    "C84BD9E"    "5689514" ; ..
+       "C11AB78"    "4CA4647"    "9C1C28D"     "57AD65" ; ..
+       "D684023"    "6AD50C0"    "83A1C05"   "141C57C1" ; ..
+      "1011B91F"    "7CD2CDC"    "8B62814"    "46F5874" ; ..
+       "C0D47AB"   "16057685"   "1364DD47"   "146F7D7C" ; ..
+      "14D090B8"    "D7EF973"    "87870F0"   "159C6465" ; ..
+       "A5A886B"    "B7AC164"    "111DDF5"    "CD8F912" ; ..
+       "5959478"    "1003C82"    "74D7099"   "15C2197A" ; ..
+       "E663EE0"   "13D22E37"    "4F4CE8D"    "4420A58" ; ..
+       "266947E"    "EB6911B"    "499B7BD"    "FCED4A1" ; ..
+      "1563E1DB"    "CD3D3C3"    "DB54C61"    "F3FBAFA" ; ..
+      "14A1009F"     "359475"   "13AF136F"    "A786849" ; ..
+         "52AF9"   "10DE10B6"    "8B205C4"   "14D5BBB2" ; ..
+       "8272A28"   "112A76B5"   "143C4016"   "1281B294" ; ..
+       "66F5819"   "154E1E0C"    "924CBA5"    "C04EC92" ; ..
+        "187A8E"   "10723C3F"    "B91260B"    "E7EB96E" ; ..
+       "E0E8A76"   "1085F499"   "12C0C3C6"   "10751EF5" ; ..
+       "906A5B3"    "1249B83"    "A0E1395"    "834A78E" ; ..
+       "DF86F46"    "18D7FF6"    "13E8288"    "C638FE5" ; ..
+       "1C3146C"   "14ED95F7"     "A6182D"    "1C83F66" ; ..
+       "F95C6AD"    "9581DF2"     "681B17"    "18710D5" ; ..
+       "44CB4A7"   "14A45B2E"   "1408C369"    "ABC0CC1" ; ..
+      "13BC993A"    "6F7AF0E"     "8B1952"   "13D513C8" ; ..
+       "1340B4D"    "C1C3F5E"    "C1DED36"    "F4295C3" ; ..
+       "66C53F6"    "8A8D0FC"    "981D4B7"    "F72F9AA" ; ..
+       "9CD6C80"   "138FE84D"    "171C138"    "18FFBC6" ; ..
+      "151D6844"    "2B043C0"    "DF38BAB"     "AA9CB0" ; ..
+       "167F9B8"    "E99A3D9"    "272DC16"   "10FDC065" ; ..
+       "1BBE1CA"    "2DAF72E"   "1284D13A"    "6089672" ; ..
+       "149725B"   "1057B4A3"   "10C4A333"   "15060B96" ; ..
+       "11983B1"   "114FBC86"   "12A53F5D"    "24D8EFF" ; ..
+       "7361BE4"    "88D4C93"   "119024C2"    "DA26FDA" ; ..
+      "11361D8F"    "4DC1979"    "6DF8984"    "4CDAA0F" ; ..
+       "23621C6"    "8514ABD"    "65DA5D5"    "11DAA0A" ; ..
+       "B018E7E"   "14513180"    "1C846BA"    "C698836" ; ..
+       "CB4F558"    "43B22D1"    "731689A"    "E70D724" ; ..
+       "71619FF"    "38059D4"   "14796D96"    "85F8C5A" ; ..
+      "13D80E78"    "F0830C9"    "72FB7F0"   "14F1922A" ; ..
+       "A220D4F"    "39F174D"    "1094128"   "11582933" ; ..
+       "C2C63E0"   "129965EB"    "8C4B90D"    "72CA16F" ; ..
+       "13F9F64"    "FA44292"    "BFA4B7E"    "375C12A" ; ..
+       "1BFAD4E"   "1257F154"    "4936B35"    "CC13BCD" ; ..
+      "107342D3"    "65BB1EF"    "2F4E403"    "6F2582C" ; ..
+       "A96D4C0"    "A264C9E"   "15632F50"   "11ACEEBF" ; ..
+       "DA6A673"   "13A6BCE5"    "3D69B1A"    "B48D4EA" ; ..
+       "C790DAE"    "B06530A"    "A048714"     "653AFC" ; ..
+       "EA56A57"    "B0DC83C"   "11BD6430"    "49BEE37" ; ..
+       "7714E26"    "44C3D3C"    "BC88FA6"    "8B0ED8A" ; ..
+      "13F07FCF"    "18CFB24"    "C26AEB5"   "15B02D1E" ; ..
+      "13E4EC79"   "10BA19EA"    "C3B88EA"    "E224F4B" ; ..
+        "DFEBD9"    "F306CEE"   "1514A778"    "B76C09A" ; ..
+       "320D98B"   "1441F6C7"    "6EDCF59"   "10C77FFE" ; ..
+      "11B2D3AC"    "AC46A73"    "5DA74E8"    "7F60159" ; ..
+      "15CABD7D"    "FDEFBFC"    "85B3C56"    "E3A47D4" ; ..
+       "4B6E437"    "3E2C086"   "12D6360B"    "C28325E" ; ..
+       "82EFDC2"    "868E5B1"   "14D91FE9"    "5E99D91" ; ..
+       "9F5E0D5"    "AC9EE9D"    "563EAAE"    "7A4ED4E" ; ..
+       "54E2887"   "119F7399"   "15C73C9A"    "62E1461" ; ..
+       "A9A0086"   "14A60411"   "11A4D4FB"    "DBADA11" ; ..
+      "12B21AD7"    "25CC453"    "84C7A0E"    "E2F0E82" ; ..
+       "D212EC7"    "E26EEF7"   "16250FDC"    "CB60C44" ; ..
+       "7D00AF2"    "84A6C32"    "4BA7417"    "C86EF29" ; ..
+       "C2D2CB8"    "15ACA21"    "2794187"   "145C2A7B" ; ..
+       "9C3AFD2"    "11C816F"    "40FE80B"   "13B990A8" ; ..
+       "BE6700D"    "973D2BA"    "5289DF5"   "11349895" ; ..
+       "4DD6652"    "4B9FA8E"    "12CCCF5"    "F7766D8" ; ..
+       "32A1E9F"   "12D1A1F1"    "6FC60E8"   "15DC3976" ; ..
+      "152E6645"    "F48DAF7"    "DD567F8"    "C19B50B" ; ..
+       "739E9ED"    "DC497D4"    "299E14F"    "F09F4E0" ; ..
+      "160F0407"    "7545566"    "55B0409"    "C0650BF" ; ..
+       "8AF1F87"    "7D44590"    "A2C9B39"   "1272CF5A" ; ..
+       "8F0C700"    "E3C8345"    "FF68002"   "14D7370E" ; ..
+       "17A75FE"   "151F1DF7"    "FD5EFA2"    "657DC51" ; ..
+       "3A33885"   "1102BC98"   "15CF4329"    "6CD5725" ; ..
+       "D9E7E88"    "695C411"    "673B09B"    "C9704CD" ; ..
+      "15DE9F09"   "14491893"    "27AD9D8"    "6E2A8F6" ; ..
+       "BD7D067"    "514BB27"   "15EC9DD6"    "BB0F46E" ; ..
+       "C69108D"    "511C1DE"    "181652C"   "15183015"];
+if or(hex2dec(B)<>A) then bugmes();quit;end
diff --git a/scilab/modules/elementary_functions/tests/unit_tests/hex2dec.tst b/scilab/modules/elementary_functions/tests/unit_tests/hex2dec.tst
new file mode 100644 (file)
index 0000000..d423b58
--- /dev/null
@@ -0,0 +1,242 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- JVM NOT MANDATORY -->
+
+// unit tests for hex2dec function
+// =============================================================================
+
+// Test 0
+// =============================================================================
+if hex2dec("0") <> 0 then pause,end
+
+// Test 1
+// =============================================================================
+A = [ 1 2 3 ; 89 23 65121 ];
+B = [ "1"  "2" "3" ; "59" "17" "FE61" ];
+if hex2dec(B) <> A then pause,end
+
+// Test 2
+// =============================================================================
+A = [ 1 2 3 89 23 65121 ];
+B = [ "1"  "2" "3" "59" "17" "FE61" ];
+if hex2dec(B) <> A then pause,end
+
+// Test 3
+// =============================================================================
+A = [ 1 ; 2 ; 3 ; 89 ; 23 ; 65121 ];
+B = [ "1" ; "2" ; "3" ; "59" ; "17" ; "FE61" ];
+if hex2dec(B) <> A then pause,end
+
+// Test 4
+// =============================================================================
+
+A = [ ..
+     247243615   59178813   73814918  334319262 ; ..
+     367067990  130823136   66292881  333871474 ; ..
+     276821382  101022451  183246026  217868224 ; ..
+     345630055   53669510  363524362   87166374 ; ..
+     321802717  334520996  277147063   23526258 ; ..
+     219987801  353676395   48328418  344647074 ; ..
+     328818456  143197491  147017548  255106772 ; ..
+      65298229  194387496  124380491  312541844 ; ..
+     253566309  198195410  274231601  248004795 ; ..
+     329018546  340524483  209246764  233210424 ; ..
+      68917430   19863286   78449143   41917980 ; ..
+      73532797   69344001  129084355   22706009 ; ..
+      31235493   33601913   46232268  251223294 ; ..
+      14648804   94560686  223240864  343467260 ; ..
+     237758177  370258413  225944528  303056406 ; ..
+     192016404  350325020  242968746   72953208 ; ..
+     175890925  144570843  320958003  132279967 ; ..
+     112465822  157575263  365490391  181383252 ; ..
+     177438549   71310031  223301232  250971346 ; ..
+     140654032  352385588  273677356  171889525 ; ..
+      13357996  319909624   50483315   28006801 ; ..
+      41840806  273724180  371474062  279598984 ; ..
+     271353089  224789085  210025886   90739988 ; ..
+     202484600   80365127  163693197    5746021 ; ..
+     224935971  112021696  138025989  337401793 ; ..
+     269596959  130886876  146155540   74406004 ; ..
+     202196907  369456773  325377351  342850940 ; ..
+     349212856  226425203  142110960  362570853 ; ..
+     173705323  192594276   17948149  215546130 ; ..
+      93688952   16792706  122515609  365042042 ; ..
+     241581792  332541495   83152525   71436888 ; ..
+      40277118  246845723   77182909  265213089 ; ..
+     358867419  215208899  229985377  255834874 ; ..
+     346095775    3511413  330240879  175663177 ; ..
+        338681  282988726  145884612  349551538 ; ..
+     136784424  287995573  339492886  310489748 ; ..
+     107960345  357441036  153406373  201649298 ; ..
+       1604238  275921983  194061835  243186030 ; ..
+     235833974  277214361  314622918  276111093 ; ..
+     151430579   19176323  168694677  137668494 ; ..
+     234385222   26050550   20873864  207851493 ; ..
+      29561964  351114743   10885165   29900646 ; ..
+     261473965  156769778    6822679   25628885 ; ..
+      72135847  346315566  336118633  180096193 ; ..
+     331127098  116895502    9115986  332731336 ; ..
+      20187981  203177822  203287862  256021955 ; ..
+     107762678  145281276  159503543  259193258 ; ..
+     164457600  328198221   24232248   26213318 ; ..
+     354248772   45106112  234064811   11181232 ; ..
+      23591352  244949977   41081878  285065317 ; ..
+      29090250   47904558  310694202  101226098 ; ..
+      21590619  274183331  281322291  352717718 ; ..
+      18449329  290438278  312819549   38637311 ; ..
+     120986596  143477907  294659266  228749274 ; ..
+     288759183   81533305  115313028   80587279 ; ..
+      37102022  139545277  106800597   18721290 ; ..
+     184651390  340865408   29902522  208242742 ; ..
+     213185880   70984401  120678554  242276132 ; ..
+     118888959   58743252  343502230  140479578 ; ..
+     332926584  252195017  120567792  351375914 ; ..
+     170003791   60757837   17383720  290990387 ; ..
+     204235744  312042987  147110157  120365423 ; ..
+      20946788  262423186  200952702   58048810 ; ..
+      29338958  307753300   76770101  213990349 ; ..
+     275989203  106672623   49603587  116545580 ; ..
+     177657024  170282142  358821712  296545983 ; ..
+     229025395  329694437   64396058  189322474 ; ..
+     209259950  184963850  168068884    6634236 ; ..
+     245721687  185452604  297624624   77327927 ; ..
+     124866086   72105276  197693350  145812874 ; ..
+     334528463   26016548  203861685  363867422 ; ..
+     333769849  280631786  205228266  237129547 ; ..
+      14674905  254831854  353675128  192331930 ; ..
+      52484491  339867335  116248409  281509886 ; ..
+     296932268  180644467   98202856  133562713 ; ..
+     365608317  266271740  140196950  238700500 ; ..
+      79094839   65192070  316028427  203960926 ; ..
+     137297346  141092273  349773801   99196305 ; ..
+     167108821  181005981   90434222  128249166 ; ..
+      89008263  295662489  365378714  103683169 ; ..
+     177864838  346424337  296015099  230349329 ; ..
+     313662167   39634003  139229710  237964930 ; ..
+     220278471  237432567  371527644  213257284 ; ..
+     131074802  139095090   79328279  210169641 ; ..
+     204287160   22727201   41501063  341584507 ; ..
+     163819474   18645359   68151307  330928296 ; ..
+     199651341  158585530   86547957  288659605 ; ..
+      81618514   79297166   19713269  259483352 ; ..
+      53091999  315728369  117203176  366754166 ; ..
+     355362373  256432887  232089592  203011339 ; ..
+     121235949  230987732   43639119  252310752 ; ..
+     370082823  122967398   89850889  201740479 ; ..
+     145694599  131351952  170695481  309514074 ; ..
+     149997312  238846789  267812866  349648654 ; ..
+      24802814  354360823  265678754  106421329 ; ..
+      61028485  285392024  365904681  114120485 ; ..
+     228490888  110478353  108245147  211223757 ; ..
+     366911241  340334739   41605592  115517686 ; ..
+     198692967   85244711  367828438  196146286 ; ..
+     208212109   85049822   25257260  353906709];
+
+B = [ ..
+       "EBCA35F"    "386FF3D"    "4665386"   "13ED4E9E" ; ..
+      "15E10356"    "7CC33E0"    "3F38C91"   "13E67972" ; ..
+      "107FF586"    "6057AF3"    "AEC1CCA"    "CFC67C0" ; ..
+      "1499E567"    "332EE86"   "15AAF10A"    "5320DA6" ; ..
+      "132E51DD"   "13F062A4"   "1084EDB7"    "166FB72" ; ..
+       "D1CBF59"   "1514AC6B"    "2E16EE2"   "148AE5A2" ; ..
+      "13995F18"    "8890533"    "8C34F4C"    "F349ED4" ; ..
+       "3E45F35"    "B961E28"    "769E54B"   "12A10294" ; ..
+       "F1D1D65"    "BD038D2"   "10587131"    "EC840BB" ; ..
+      "139C6CB2"   "144BFDC3"    "C78DA2C"    "DE68238" ; ..
+       "41B98B6"    "12F16F6"    "4AD09F7"    "27F9E1C" ; ..
+       "462057D"    "4221B01"    "7B1ABC3"    "15A7759" ; ..
+       "1DC9DA5"    "200B979"    "2C172CC"    "EF95CFE" ; ..
+        "DF85E4"    "5A2E1AE"    "D4E62A0"   "1478E4FC" ; ..
+       "E2BE6E1"   "1611B1ED"    "D77A3D0"   "12104616" ; ..
+       "B71F014"   "14E1891C"    "E7B68AA"    "4592D78" ; ..
+       "A7BE1ED"    "89DF9DB"   "13216E33"    "7E26E9F" ; ..
+       "6B4179E"    "964685F"   "15C8F0D7"    "ACFB054" ; ..
+       "A937F55"    "4401ACF"    "D4F4E70"    "EF584D2" ; ..
+       "86235D0"   "1500FA34"   "104FFC2C"    "A3ED375" ; ..
+        "CBD3AC"   "13116EF8"    "3025073"    "1AB5991" ; ..
+       "27E70A6"   "1050B314"   "16243E8E"   "10AA5788" ; ..
+      "102C8501"    "D66025D"    "C84BD9E"    "5689514" ; ..
+       "C11AB78"    "4CA4647"    "9C1C28D"     "57AD65" ; ..
+       "D684023"    "6AD50C0"    "83A1C05"   "141C57C1" ; ..
+      "1011B91F"    "7CD2CDC"    "8B62814"    "46F5874" ; ..
+       "C0D47AB"   "16057685"   "1364DD47"   "146F7D7C" ; ..
+      "14D090B8"    "D7EF973"    "87870F0"   "159C6465" ; ..
+       "A5A886B"    "B7AC164"    "111DDF5"    "CD8F912" ; ..
+       "5959478"    "1003C82"    "74D7099"   "15C2197A" ; ..
+       "E663EE0"   "13D22E37"    "4F4CE8D"    "4420A58" ; ..
+       "266947E"    "EB6911B"    "499B7BD"    "FCED4A1" ; ..
+      "1563E1DB"    "CD3D3C3"    "DB54C61"    "F3FBAFA" ; ..
+      "14A1009F"     "359475"   "13AF136F"    "A786849" ; ..
+         "52AF9"   "10DE10B6"    "8B205C4"   "14D5BBB2" ; ..
+       "8272A28"   "112A76B5"   "143C4016"   "1281B294" ; ..
+       "66F5819"   "154E1E0C"    "924CBA5"    "C04EC92" ; ..
+        "187A8E"   "10723C3F"    "B91260B"    "E7EB96E" ; ..
+       "E0E8A76"   "1085F499"   "12C0C3C6"   "10751EF5" ; ..
+       "906A5B3"    "1249B83"    "A0E1395"    "834A78E" ; ..
+       "DF86F46"    "18D7FF6"    "13E8288"    "C638FE5" ; ..
+       "1C3146C"   "14ED95F7"     "A6182D"    "1C83F66" ; ..
+       "F95C6AD"    "9581DF2"     "681B17"    "18710D5" ; ..
+       "44CB4A7"   "14A45B2E"   "1408C369"    "ABC0CC1" ; ..
+      "13BC993A"    "6F7AF0E"     "8B1952"   "13D513C8" ; ..
+       "1340B4D"    "C1C3F5E"    "C1DED36"    "F4295C3" ; ..
+       "66C53F6"    "8A8D0FC"    "981D4B7"    "F72F9AA" ; ..
+       "9CD6C80"   "138FE84D"    "171C138"    "18FFBC6" ; ..
+      "151D6844"    "2B043C0"    "DF38BAB"     "AA9CB0" ; ..
+       "167F9B8"    "E99A3D9"    "272DC16"   "10FDC065" ; ..
+       "1BBE1CA"    "2DAF72E"   "1284D13A"    "6089672" ; ..
+       "149725B"   "1057B4A3"   "10C4A333"   "15060B96" ; ..
+       "11983B1"   "114FBC86"   "12A53F5D"    "24D8EFF" ; ..
+       "7361BE4"    "88D4C93"   "119024C2"    "DA26FDA" ; ..
+      "11361D8F"    "4DC1979"    "6DF8984"    "4CDAA0F" ; ..
+       "23621C6"    "8514ABD"    "65DA5D5"    "11DAA0A" ; ..
+       "B018E7E"   "14513180"    "1C846BA"    "C698836" ; ..
+       "CB4F558"    "43B22D1"    "731689A"    "E70D724" ; ..
+       "71619FF"    "38059D4"   "14796D96"    "85F8C5A" ; ..
+      "13D80E78"    "F0830C9"    "72FB7F0"   "14F1922A" ; ..
+       "A220D4F"    "39F174D"    "1094128"   "11582933" ; ..
+       "C2C63E0"   "129965EB"    "8C4B90D"    "72CA16F" ; ..
+       "13F9F64"    "FA44292"    "BFA4B7E"    "375C12A" ; ..
+       "1BFAD4E"   "1257F154"    "4936B35"    "CC13BCD" ; ..
+      "107342D3"    "65BB1EF"    "2F4E403"    "6F2582C" ; ..
+       "A96D4C0"    "A264C9E"   "15632F50"   "11ACEEBF" ; ..
+       "DA6A673"   "13A6BCE5"    "3D69B1A"    "B48D4EA" ; ..
+       "C790DAE"    "B06530A"    "A048714"     "653AFC" ; ..
+       "EA56A57"    "B0DC83C"   "11BD6430"    "49BEE37" ; ..
+       "7714E26"    "44C3D3C"    "BC88FA6"    "8B0ED8A" ; ..
+      "13F07FCF"    "18CFB24"    "C26AEB5"   "15B02D1E" ; ..
+      "13E4EC79"   "10BA19EA"    "C3B88EA"    "E224F4B" ; ..
+        "DFEBD9"    "F306CEE"   "1514A778"    "B76C09A" ; ..
+       "320D98B"   "1441F6C7"    "6EDCF59"   "10C77FFE" ; ..
+      "11B2D3AC"    "AC46A73"    "5DA74E8"    "7F60159" ; ..
+      "15CABD7D"    "FDEFBFC"    "85B3C56"    "E3A47D4" ; ..
+       "4B6E437"    "3E2C086"   "12D6360B"    "C28325E" ; ..
+       "82EFDC2"    "868E5B1"   "14D91FE9"    "5E99D91" ; ..
+       "9F5E0D5"    "AC9EE9D"    "563EAAE"    "7A4ED4E" ; ..
+       "54E2887"   "119F7399"   "15C73C9A"    "62E1461" ; ..
+       "A9A0086"   "14A60411"   "11A4D4FB"    "DBADA11" ; ..
+      "12B21AD7"    "25CC453"    "84C7A0E"    "E2F0E82" ; ..
+       "D212EC7"    "E26EEF7"   "16250FDC"    "CB60C44" ; ..
+       "7D00AF2"    "84A6C32"    "4BA7417"    "C86EF29" ; ..
+       "C2D2CB8"    "15ACA21"    "2794187"   "145C2A7B" ; ..
+       "9C3AFD2"    "11C816F"    "40FE80B"   "13B990A8" ; ..
+       "BE6700D"    "973D2BA"    "5289DF5"   "11349895" ; ..
+       "4DD6652"    "4B9FA8E"    "12CCCF5"    "F7766D8" ; ..
+       "32A1E9F"   "12D1A1F1"    "6FC60E8"   "15DC3976" ; ..
+      "152E6645"    "F48DAF7"    "DD567F8"    "C19B50B" ; ..
+       "739E9ED"    "DC497D4"    "299E14F"    "F09F4E0" ; ..
+      "160F0407"    "7545566"    "55B0409"    "C0650BF" ; ..
+       "8AF1F87"    "7D44590"    "A2C9B39"   "1272CF5A" ; ..
+       "8F0C700"    "E3C8345"    "FF68002"   "14D7370E" ; ..
+       "17A75FE"   "151F1DF7"    "FD5EFA2"    "657DC51" ; ..
+       "3A33885"   "1102BC98"   "15CF4329"    "6CD5725" ; ..
+       "D9E7E88"    "695C411"    "673B09B"    "C9704CD" ; ..
+      "15DE9F09"   "14491893"    "27AD9D8"    "6E2A8F6" ; ..
+       "BD7D067"    "514BB27"   "15EC9DD6"    "BB0F46E" ; ..
+       "C69108D"    "511C1DE"    "181652C"   "15183015"];
+
+if or(hex2dec(B)<>A) then pause,end