Fix test 84/8484/1
Adeline CARNIS [Thu, 2 Aug 2012 09:22:11 +0000 (11:22 +0200)]
Change-Id: Ib0efab41cb829c714e3ca9de567b0f23d7333923

scilab/modules/elementary_functions/tests/unit_tests/IEEEcompatibility.dia.ref
scilab/modules/elementary_functions/tests/unit_tests/IEEEcompatibility.tst

index 64c52b8..9e44bf5 100644 (file)
@@ -3,6 +3,7 @@
 // Copyright (C) 2008 - INRIA - Allan CORNET
 // Copyright (C) 2009 - INRIA - Michael Baudin, Antoine Elias
 // Copyright (C) 2010-2011 - DIGITEO - Michael Baudin
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
@@ -84,12 +85,12 @@ imult(%inf)
 %inf
 %nan];
 expectedmodulo = [
-%nan  %nan  -%inf -%inf  %nan  %nan  %nan
-%nan     0.   -1.    -1.   0.  %nan  %nan
-%nan     0.    0.     0.   0.  %nan  %nan
-%nan     0.    0.     0.   0.  %nan  %nan
-%nan     0.    1.     1.   0.  %nan  %nan
-%nan  %nan   %inf  %inf  %nan  %nan  %nan
+%nan  %nan  %nan  %nan  %nan  %nan  %nan
+%nan     0. %nan  %nan     0. %nan  %nan
+%nan     0. %nan  %nan     0. %nan  %nan
+%nan     0. %nan  %nan     0. %nan  %nan
+%nan     0. %nan  %nan     0. %nan  %nan
+%nan  %nan   %nan  %nan  %nan  %nan  %nan
 %nan  %nan   %nan  %nan  %nan  %nan  %nan];
 left=[-%inf,-1,-0,+0,1,%inf,%nan];
 right=left;
@@ -103,16 +104,16 @@ computedsqrt = zeros(n);
 computedmodulo = zeros(n,n);
 ieee(2)
 for i=1:n
-  l=left(i);
-  computedsqrt (i) = sqrt(l);
-  for j=1:n
-    r=right(j);
-    computedadd (i,j)=l+r;
-    computedminus (i,j)=l-r;
-    computedmult (i,j)=l*r;
-    computeddiv (i,j)=l/r;
-    computedmodulo (i,j) = modulo(l , r);
-  end
+    l=left(i);
+    computedsqrt (i) = sqrt(l);
+    for j=1:n
+        r=right(j);
+        computedadd (i,j)=l+r;
+        computedminus (i,j)=l-r;
+        computedmult (i,j)=l*r;
+        computeddiv (i,j)=l/r;
+        computedmodulo (i,j) = modulo(l , r);
+    end
 end
 assert_checkequal ( computedadd    , expectedadd );
 assert_checkequal ( computedminus  , expectedminus );
@@ -120,3 +121,4 @@ assert_checkequal ( computedmult   , expectedmult );
 assert_checkequal ( computeddiv    , expecteddiv );
 assert_checkequal ( computedsqrt   , expectedsqrt );
 assert_checkequal ( computedmodulo , expectedmodulo );
+ieee(0)
index 358808e..9f2917c 100644 (file)
-// =============================================================================
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2008 - INRIA - Allan CORNET
-// Copyright (C) 2009 - INRIA - Michael Baudin, Antoine Elias
-// Copyright (C) 2010-2011 - DIGITEO - Michael Baudin
-//
-//  This file is distributed under the same license as the Scilab package.
-// =============================================================================
-
-//
-// <-- CLI SHELL MODE -->
-// <-- Bugzilla URL -->
-//
-
-
-// Bibliography :
-// "IEEE Standard for Floating-Point Arithmetic"
-// IEEE Std 754-2008
-// 29 August 2008
-// (Revision of IEEE Std 754-1985)
-
-// Check that properties of double precision floating point numbers
-// are the one which are expected.
-// Strict equality is required here.
-radix = number_properties("radix");
-assert_checkequal ( radix , 2 );
-p = number_properties("digits");
-assert_checkequal ( p , 53 );
-eps = number_properties("eps");
-assert_checkequal ( eps , 1.11022302462515650e-016 );
-assert_checkequal ( %eps , 2.22044604925031310e-016 );
-huge = number_properties("huge");
-assert_checkequal ( huge , 1.797693134862315708e+308 );
-tiny = number_properties("tiny");
-assert_checkequal ( tiny , 2.22507385850720140e-308 );
-denorm = number_properties("denorm");
-assert_checkequal ( denorm , %t );
-tiniest = number_properties("tiniest");
-assert_checkequal ( tiniest , 4.94065645841246540e-324 );
-minexp = number_properties("minexp");
-assert_checkequal ( minexp , -1021 );
-maxexp = number_properties("maxexp");
-assert_checkequal ( maxexp , 1024 );
-
-// Check that elementary operators +,-,*,/,sqrt and modulo
-// satisfy basic IEEE requirements.
-
-expectedadd = [
--%inf  -%inf   -%inf   -%inf   -%inf   %nan    %nan
--%inf  -2      -1      -1      0       %inf    %nan
--%inf  -1      -0      0       1       %inf    %nan
--%inf  -1      0       0       1       %inf    %nan
--%inf  0       1       1       2       %inf    %nan
-%nan   %inf    %inf    %inf    %inf    %inf    %nan
-%nan   %nan    %nan    %nan    %nan    %nan    %nan];
-
-expectedminus = [
-%nan   -%inf   -%inf   -%inf   -%inf   -%inf   %nan
-%inf   0       -1      -1      -2      -%inf   %nan
-%inf   1       0       -0      -1      -%inf   %nan
-%inf   1       0       0       -1      -%inf   %nan
-%inf   2       1       1       0       -%inf   %nan
-%inf   %inf    %inf    %inf    %inf    %nan    %nan
-%nan   %nan    %nan    %nan    %nan    %nan    %nan];
-
-expectedmult = [
-%inf   %inf    %nan    %nan    -%inf   -%inf   %nan
-%inf   1       0       -0      -1      -%inf   %nan
-%nan   0       0       -0      -0      %nan    %nan
-%nan   -0      -0      0       0       %nan    %nan
--%inf  -1      -0      0       1       %inf    %nan
--%inf  -%inf   %nan    %nan    %inf    %inf    %nan
-%nan   %nan    %nan    %nan    %nan    %nan    %nan];
-
-expecteddiv = [
-%nan   %inf    %inf    -%inf   -%inf   %nan    %nan
-0      1       %inf    -%inf   -1      -0      %nan
-0      0       %nan    %nan    -0      -0      %nan
--0     -0      %nan    %nan    0       0       %nan
--0     -1      -%inf   %inf    1       0       %nan
-%nan   -%inf   -%inf   %inf    %inf    %nan    %nan
-%nan   %nan    %nan    %nan    %nan    %nan    %nan];
-
-// See http://bugzilla.scilab.org/show_bug.cgi?id=2409
-// We must use imult(%inf) to get the mathematical number i * inf
-// since %i * %inf produces imult(%inf), as expected by the 
-// intermediate multiplication 0*%inf = %nan.
-expectedsqrt = [
-imult(%inf)
-%i
-0
-0
-1.
-%inf
-%nan];
-
-expectedmodulo = [
-%nan  %nan  -%inf -%inf  %nan  %nan  %nan
-%nan     0.   -1.    -1.   0.  %nan  %nan
-%nan     0.    0.     0.   0.  %nan  %nan
-%nan     0.    0.     0.   0.  %nan  %nan
-%nan     0.    1.     1.   0.  %nan  %nan
-%nan  %nan   %inf  %inf  %nan  %nan  %nan
-%nan  %nan   %nan  %nan  %nan  %nan  %nan];
-
-left=[-%inf,-1,-0,+0,1,%inf,%nan];
-right=left;
-n=size(left,2);
-
-computedadd = zeros(n,n);
-computedminus = zeros(n,n);
-computedmult = zeros(n,n);
-computeddiv = zeros(n,n);
-computedsqrt = zeros(n);
-computedsqrt = zeros(n);
-computedmodulo = zeros(n,n);
-ieee(2)
-for i=1:n
-  l=left(i);
-  computedsqrt (i) = sqrt(l);
-  for j=1:n
-    r=right(j);
-    computedadd (i,j)=l+r;
-    computedminus (i,j)=l-r;
-    computedmult (i,j)=l*r;
-    computeddiv (i,j)=l/r;
-    computedmodulo (i,j) = modulo(l , r);
-  end
-end
-
-assert_checkequal ( computedadd    , expectedadd );
-assert_checkequal ( computedminus  , expectedminus );
-assert_checkequal ( computedmult   , expectedmult );
-assert_checkequal ( computeddiv    , expecteddiv );
-assert_checkequal ( computedsqrt   , expectedsqrt );
-assert_checkequal ( computedmodulo , expectedmodulo );
-
-
+// =============================================================================\r
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2008 - INRIA - Allan CORNET\r
+// Copyright (C) 2009 - INRIA - Michael Baudin, Antoine Elias\r
+// Copyright (C) 2010-2011 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+//  This file is distributed under the same license as the Scilab package.\r
+// =============================================================================\r
+\r
+//\r
+// <-- CLI SHELL MODE -->\r
+// <-- Bugzilla URL -->\r
+//\r
+\r
+\r
+// Bibliography :\r
+// "IEEE Standard for Floating-Point Arithmetic"\r
+// IEEE Std 754-2008\r
+// 29 August 2008\r
+// (Revision of IEEE Std 754-1985)\r
+\r
+// Check that properties of double precision floating point numbers\r
+// are the one which are expected.\r
+// Strict equality is required here.\r
+radix = number_properties("radix");\r
+assert_checkequal ( radix , 2 );\r
+p = number_properties("digits");\r
+assert_checkequal ( p , 53 );\r
+eps = number_properties("eps");\r
+assert_checkequal ( eps , 1.11022302462515650e-016 );\r
+assert_checkequal ( %eps , 2.22044604925031310e-016 );\r
+huge = number_properties("huge");\r
+assert_checkequal ( huge , 1.797693134862315708e+308 );\r
+tiny = number_properties("tiny");\r
+assert_checkequal ( tiny , 2.22507385850720140e-308 );\r
+denorm = number_properties("denorm");\r
+assert_checkequal ( denorm , %t );\r
+tiniest = number_properties("tiniest");\r
+assert_checkequal ( tiniest , 4.94065645841246540e-324 );\r
+minexp = number_properties("minexp");\r
+assert_checkequal ( minexp , -1021 );\r
+maxexp = number_properties("maxexp");\r
+assert_checkequal ( maxexp , 1024 );\r
+\r
+// Check that elementary operators +,-,*,/,sqrt and modulo\r
+// satisfy basic IEEE requirements.\r
+\r
+expectedadd = [\r
+-%inf  -%inf   -%inf   -%inf   -%inf   %nan    %nan\r
+-%inf  -2      -1      -1      0       %inf    %nan\r
+-%inf  -1      -0      0       1       %inf    %nan\r
+-%inf  -1      0       0       1       %inf    %nan\r
+-%inf  0       1       1       2       %inf    %nan\r
+%nan   %inf    %inf    %inf    %inf    %inf    %nan\r
+%nan   %nan    %nan    %nan    %nan    %nan    %nan];\r
+\r
+expectedminus = [\r
+%nan   -%inf   -%inf   -%inf   -%inf   -%inf   %nan\r
+%inf   0       -1      -1      -2      -%inf   %nan\r
+%inf   1       0       -0      -1      -%inf   %nan\r
+%inf   1       0       0       -1      -%inf   %nan\r
+%inf   2       1       1       0       -%inf   %nan\r
+%inf   %inf    %inf    %inf    %inf    %nan    %nan\r
+%nan   %nan    %nan    %nan    %nan    %nan    %nan];\r
+\r
+expectedmult = [\r
+%inf   %inf    %nan    %nan    -%inf   -%inf   %nan\r
+%inf   1       0       -0      -1      -%inf   %nan\r
+%nan   0       0       -0      -0      %nan    %nan\r
+%nan   -0      -0      0       0       %nan    %nan\r
+-%inf  -1      -0      0       1       %inf    %nan\r
+-%inf  -%inf   %nan    %nan    %inf    %inf    %nan\r
+%nan   %nan    %nan    %nan    %nan    %nan    %nan];\r
+\r
+expecteddiv = [\r
+%nan   %inf    %inf    -%inf   -%inf   %nan    %nan\r
+0      1       %inf    -%inf   -1      -0      %nan\r
+0      0       %nan    %nan    -0      -0      %nan\r
+-0     -0      %nan    %nan    0       0       %nan\r
+-0     -1      -%inf   %inf    1       0       %nan\r
+%nan   -%inf   -%inf   %inf    %inf    %nan    %nan\r
+%nan   %nan    %nan    %nan    %nan    %nan    %nan];\r
+\r
+// See http://bugzilla.scilab.org/show_bug.cgi?id=2409\r
+// We must use imult(%inf) to get the mathematical number i * inf\r
+// since %i * %inf produces imult(%inf), as expected by the \r
+// intermediate multiplication 0*%inf = %nan.\r
+expectedsqrt = [\r
+imult(%inf)\r
+%i\r
+0\r
+0\r
+1.\r
+%inf\r
+%nan];\r
+\r
+expectedmodulo = [\r
+%nan  %nan  %nan  %nan  %nan  %nan  %nan\r
+%nan     0. %nan  %nan     0. %nan  %nan\r
+%nan     0. %nan  %nan     0. %nan  %nan\r
+%nan     0. %nan  %nan     0. %nan  %nan\r
+%nan     0. %nan  %nan     0. %nan  %nan\r
+%nan  %nan   %nan  %nan  %nan  %nan  %nan\r
+%nan  %nan   %nan  %nan  %nan  %nan  %nan];\r
+\r
+left=[-%inf,-1,-0,+0,1,%inf,%nan];\r
+right=left;\r
+n=size(left,2);\r
+\r
+computedadd = zeros(n,n);\r
+computedminus = zeros(n,n);\r
+computedmult = zeros(n,n);\r
+computeddiv = zeros(n,n);\r
+computedsqrt = zeros(n);\r
+computedsqrt = zeros(n);\r
+computedmodulo = zeros(n,n);\r
+ieee(2)\r
+for i=1:n\r
+    l=left(i);\r
+    computedsqrt (i) = sqrt(l);\r
+    for j=1:n\r
+        r=right(j);\r
+        computedadd (i,j)=l+r;\r
+        computedminus (i,j)=l-r;\r
+        computedmult (i,j)=l*r;\r
+        computeddiv (i,j)=l/r;\r
+        computedmodulo (i,j) = modulo(l , r);\r
+    end\r
+end\r
+\r
+assert_checkequal ( computedadd    , expectedadd );\r
+assert_checkequal ( computedminus  , expectedminus );\r
+assert_checkequal ( computedmult   , expectedmult );\r
+assert_checkequal ( computeddiv    , expecteddiv );\r
+assert_checkequal ( computedsqrt   , expectedsqrt );\r
+assert_checkequal ( computedmodulo , expectedmodulo );\r
+\r
+ieee(0)\r
+\r\r