assert: bug 9966 fixed - Fixed assert_checkalmostequal 57/4957/7
Michael BAUDIN [Thu, 15 Sep 2011 14:12:32 +0000 (16:12 +0200)]
Change-Id: Ie10eb67da76ad4d01240f3d28815287ffa894b03

37 files changed:
scilab/CHANGES_5.4.X
scilab/modules/cacsd/tests/unit_tests/damp.tst
scilab/modules/cacsd/tests/unit_tests/dscr.dia.ref
scilab/modules/cacsd/tests/unit_tests/dscr.tst
scilab/modules/development_tools/help/en_US/assert/assert_checkalmostequal.xml
scilab/modules/development_tools/macros/assert/assert_checkalmostequal.sci
scilab/modules/development_tools/tests/nonreg_tests/bug_9966.dia.ref [new file with mode: 0644]
scilab/modules/development_tools/tests/nonreg_tests/bug_9966.tst [new file with mode: 0644]
scilab/modules/development_tools/tests/unit_tests/assert/checkalmostequal.dia.ref
scilab/modules/development_tools/tests/unit_tests/assert/checkalmostequal.tst
scilab/modules/optimization/tests/nonreg_tests/bug_8719.dia.ref
scilab/modules/optimization/tests/nonreg_tests/bug_8719.tst
scilab/modules/optimization/tests/nonreg_tests/bug_8720.dia.ref
scilab/modules/optimization/tests/nonreg_tests/bug_8720.tst
scilab/modules/optimization/tests/nonreg_tests/bug_8727.dia.ref
scilab/modules/optimization/tests/nonreg_tests/bug_8727.tst
scilab/modules/optimization/tests/nonreg_tests/bug_8805.dia.ref
scilab/modules/optimization/tests/nonreg_tests/bug_8805.tst
scilab/modules/optimization/tests/unit_tests/derivative.dia.ref
scilab/modules/optimization/tests/unit_tests/derivative.linux.dia.ref
scilab/modules/optimization/tests/unit_tests/derivative.tst
scilab/modules/optimization/tests/unit_tests/karmarkar.dia.ref
scilab/modules/optimization/tests/unit_tests/karmarkar.tst
scilab/modules/optimization/tests/unit_tests/neldermead/neldermead_mckinnon.dia.ref
scilab/modules/optimization/tests/unit_tests/neldermead/neldermead_mckinnon.tst
scilab/modules/optimization/tests/unit_tests/neldermead/neldermead_mymethod.dia.ref
scilab/modules/optimization/tests/unit_tests/neldermead/neldermead_mymethod.tst
scilab/modules/optimization/tests/unit_tests/neldermead/neldermead_rosensuzuki.dia.ref
scilab/modules/optimization/tests/unit_tests/neldermead/neldermead_rosensuzuki.tst
scilab/modules/optimization/tests/unit_tests/optimsimplex/optimsimplex_axes.dia.ref
scilab/modules/optimization/tests/unit_tests/optimsimplex/optimsimplex_axes.tst
scilab/modules/polynomials/tests/nonreg_tests/bug_415.dia.ref
scilab/modules/polynomials/tests/nonreg_tests/bug_415.tst
scilab/modules/randlib/tests/unit_tests/grand_generators.dia.ref
scilab/modules/randlib/tests/unit_tests/grand_generators.tst
scilab/modules/randlib/tests/unit_tests/grand_laws.dia.ref
scilab/modules/randlib/tests/unit_tests/grand_laws.tst

index 3befd5a..31d8505 100644 (file)
@@ -630,7 +630,12 @@ Bug fixes:
 
 * bug 9920 fixed - winqueryreg did not manage HKEY_CURRENT_CONFIG.
 
+<<<<<<< HEAD
 * bug 9971 fixed - GLoad macro not used and not documented is removed.
+=======
+* bug 9966 fixed - The default value of comptype in assert_checkalmostequal 
+                   was wrongly chosen.
+>>>>>>> 8e3e2d3... assert: bug 9966 fixed - Fixed assert_checkalmostequal
 
 * bug 9979 fixed - The who_user() function printed a wrong message.
 
index dcd8f4f..6ec36f1 100644 (file)
@@ -71,7 +71,6 @@ assert_checkalmostequal (wn,wnref);
 assert_checkalmostequal (zeta(2:$),zetaref(2:$));
 assert_checktrue(abs(abs(zeta(1))-1)<100*%eps);
 
-
 //transfer function
 [wn,zeta]=damp(syslin('c',ones(1,3),P));
 wnref=[0;1;sqrt(2);sqrt(2);2;sqrt(13);sqrt(13)];
@@ -80,7 +79,6 @@ assert_checkalmostequal (wn,wnref);
 assert_checkalmostequal (zeta(2:$),zetaref(2:$));
 assert_checktrue(abs(abs(zeta(1))-1)<100*%eps);
 
-
 dt=1;
 [wn,zeta]=damp(syslin(dt,ones(1,3),P));
 t1=log(1+%i)/dt;
index b45a23d..04438d8 100644 (file)
@@ -41,4 +41,4 @@ expected = expm(sl.A*0.1);
 assert_checkalmostequal ( computed , expected , %eps );
 computed = sld.B;
 expected = sl.A\(sld.A-eye())*sl.B;
-assert_checkalmostequal ( computed , expected , 1.e3 * %eps );
+assert_checkalmostequal ( computed , expected , 1.e5 * %eps );
index 835b239..d983754 100644 (file)
@@ -48,5 +48,5 @@ expected = expm(sl.A*0.1);
 assert_checkalmostequal ( computed , expected , %eps );
 computed = sld.B;
 expected = sl.A\(sld.A-eye())*sl.B;
-assert_checkalmostequal ( computed , expected , 1.e3 * %eps );
+assert_checkalmostequal ( computed , expected , 1.e5 * %eps );
 
index cc30aba..8b97c1c 100644 (file)
@@ -71,7 +71,7 @@
       <varlistentry>
         <term>comptype :</term>
         <listitem>
-          <para> a 1-by-1 matrix of strings, "matrix" or "element" (default comptype="matrix"). The comparison type.</para>
+          <para> a 1-by-1 matrix of strings, "matrix" or "element" (default comptype="element"). The comparison type.</para>
         </listitem>
       </varlistentry>
       <varlistentry>
       Then, the non-nan, non-infinity values are actually compared.
     </para>
     <para>
+      The default comptype="element" option performs the comparison elementwise, i.e.
+      all the elements of the matrices must be almost equal.
+      The comptype="matrix" option performs the comparison for the matrices as a whole,
+      the norm of the difference of the matrices is used.
+    </para>
+    <para>
       In general, the relative tolerance should be
       set to a multiple of the machine precision %eps.
       The relative tolerance should also be chosen with the lowest
@@ -252,11 +258,11 @@ assert_computedigits(computed, expected)
 // The following test pass.
 assert_checkalmostequal(computed,expected,1.e5*%eps);
 
-// The following test pass.
-assert_checkalmostequal ( [1 1.e5] , [2 1.e5] , 1.e-3 )
-// We see that 1 is not almost equal to 2: we must use the elementwise comparison.
+// The following examples show the difference between comptype="element" and "matrix".
 // The following test does not pass.
-assert_checkalmostequal ( [1 1.e5] , [2 1.e5] , 1.e-3 , [] , "element" )
+assert_checkalmostequal ( [1 1.e5] , [2 1.e5] , 1.e-3 )
+// The following test pass with the matrix-based comparison.
+assert_checkalmostequal ( [1 1.e5] , [2 1.e5] , 1.e-3 , [] , "matrix" )
 
 // The following test pass.
 // It is non-trivial to take into account for IEEE values.
index bb0e8a9..af2675f 100644 (file)
@@ -21,7 +21,7 @@ function [flag,errmsg] = assert_checkalmostequal ( varargin )
   expected = varargin(2)
   reltol = argindefault ( rhs , varargin , 3 , sqrt(%eps) )
   abstol = argindefault ( rhs , varargin , 4 , 0 )
-  comptype = argindefault ( rhs , varargin , 5 , "matrix" )
+  comptype = argindefault ( rhs , varargin , 5 , "element" )
   //
   // Check types of variables
   if ( typeof(computed) <> "constant" ) then
@@ -145,6 +145,10 @@ function areequal = assert_arealmostequal ( computed , expected , reltol , absto
   // This allows to solve the following issue:
   // if computed is %inf and expected is %inf, the difference is %nan,
   // which makes the computations fail.        
+  if ( computed == [] & expected == []) then
+      areequal = %t
+      return
+  end
   [kcpinf , kcninf , kcnan , kcreg , creg] = infnanindices ( computed )
   [kepinf , keninf , kenan , kereg , ereg] = infnanindices ( expected )
   //
diff --git a/scilab/modules/development_tools/tests/nonreg_tests/bug_9966.dia.ref b/scilab/modules/development_tools/tests/nonreg_tests/bug_9966.dia.ref
new file mode 100644 (file)
index 0000000..1a0693e
--- /dev/null
@@ -0,0 +1,21 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2011 - DIGITEO - Michael Baudin
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// <-- Non-regression test for bug 9635 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=9635
+//
+// <-- Short Description -->
+// The default value of comptype in assert_checkalmostequal is wrongly chosen.
+A = [1e10 1e-2];
+B = [1e10 2e-2];
+instr = "assert_checkalmostequal(A,B)";
+lclmsg = "%s: Assertion failed: expected = %s while computed = %s";
+strA = "[" + string(A(1)) + " ...]";
+strB = "[" + string(B(1)) + " ...]";
+assert_checkerror(instr,lclmsg,[],"assert_checkalmostequal",strA,strB);
diff --git a/scilab/modules/development_tools/tests/nonreg_tests/bug_9966.tst b/scilab/modules/development_tools/tests/nonreg_tests/bug_9966.tst
new file mode 100644 (file)
index 0000000..f1a119c
--- /dev/null
@@ -0,0 +1,24 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2011 - DIGITEO - Michael Baudin
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- JVM NOT MANDATORY -->
+
+// <-- Non-regression test for bug 9635 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=9635
+//
+// <-- Short Description -->
+// The default value of comptype in assert_checkalmostequal is wrongly chosen.
+
+A = [1e10 1e-2];
+B = [1e10 2e-2];
+instr = "assert_checkalmostequal(A,B)";
+lclmsg = "%s: Assertion failed: expected = %s while computed = %s";
+strA = "[" + string(A(1)) + " ...]";
+strB = "[" + string(B(1)) + " ...]";
+assert_checkerror(instr,lclmsg,[],"assert_checkalmostequal",strA,strB);
index be0bddc..7fa8ec2 100644 (file)
@@ -106,6 +106,21 @@ errmsg = lasterror();
 MY_assert_equal ( errmsg , "assert_checkalmostequal: Assertion failed: expected = [0 ...] while computed = [0.0001 ...]" );
 //////////////////////////////////////////
 //
+// Test empty matrix
+//
+// Obvious success
+[flag,errmsg] = assert_checkalmostequal ( [] , [] );
+checkassert ( flag , errmsg , "success" );
+//
+// Obvious success
+[flag,errmsg] = assert_checkalmostequal ( [] , [] , [], [], "matrix");
+checkassert ( flag , errmsg , "success" );
+//
+// Obvious success
+[flag,errmsg] = assert_checkalmostequal ( [] , [] , [], [], "element");
+checkassert ( flag , errmsg , "success" );
+//////////////////////////////////////////
+//
 //
 // Obvious success
 [flag,errmsg] = assert_checkalmostequal ( 1 , 1 );
index 913c976..27714f4 100644 (file)
@@ -111,6 +111,23 @@ ierr=execstr(instr,"errcatch");
 MY_assert_equal ( ierr , 10000 );
 errmsg = lasterror();
 MY_assert_equal ( errmsg , "assert_checkalmostequal: Assertion failed: expected = [0 ...] while computed = [0.0001 ...]" );
+
+//////////////////////////////////////////
+//
+// Test empty matrix
+//
+// Obvious success
+[flag,errmsg] = assert_checkalmostequal ( [] , [] );
+checkassert ( flag , errmsg , "success" );
+//
+// Obvious success
+[flag,errmsg] = assert_checkalmostequal ( [] , [] , [], [], "matrix");
+checkassert ( flag , errmsg , "success" );
+//
+// Obvious success
+[flag,errmsg] = assert_checkalmostequal ( [] , [] , [], [], "element");
+checkassert ( flag , errmsg , "success" );
+
 //////////////////////////////////////////
 //
 //
index e03728d..073e37f 100644 (file)
@@ -1,6 +1,6 @@
 // =============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2010 - DIGITEO - Michael Baudin
+// Copyright (C) 2010-2011 - DIGITEO - Michael Baudin
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
@@ -28,4 +28,4 @@ x0 = [
 0.0820513
 ];
 xopt=karmarkar(a,b,c,x0);
-assert_checkalmostequal ( xopt , expected , 1.e-3 );
+assert_checkalmostequal ( xopt , expected , 1.e-3, 1.e-3 );
index b654596..c27b529 100644 (file)
@@ -30,5 +30,5 @@ x0 = [
 0.0820513
 ];
 xopt=karmarkar(a,b,c,x0);
-assert_checkalmostequal ( xopt , expected , 1.e-3 );
+assert_checkalmostequal ( xopt , expected , 1.e-3, 1.e-3 );
 
index 03d1a56..f7d15bc 100644 (file)
@@ -23,4 +23,4 @@ b = [60 32]';
 x0 = [4.1128205  7.7333333  1.2615385  0.0820513]';
 expected = [4 8 0 0]';
 xopt = karmarkar(a,b,c,x0);
-assert_checkalmostequal ( xopt , expected , 1.e-4 );
+assert_checkalmostequal ( xopt , expected , 1.e-4, 1.e-3);
index b642bcd..6fb38bf 100644 (file)
@@ -25,5 +25,5 @@ b = [60 32]';
 x0 = [4.1128205  7.7333333  1.2615385  0.0820513]';
 expected = [4 8 0 0]';
 xopt = karmarkar(a,b,c,x0);
-assert_checkalmostequal ( xopt , expected , 1.e-4 );
+assert_checkalmostequal ( xopt , expected , 1.e-4, 1.e-3);
 
index ef096a9..9c1d4bc 100644 (file)
@@ -37,4 +37,4 @@ xstar  = [
     0.1566571  
     0.2458183  
 ];
-assert_checkalmostequal ( xopt , xstar , 1.e-6 );
+assert_checkalmostequal ( xopt , xstar , 1.e-6, 1.e-6 );
index d7892b4..2093278 100644 (file)
@@ -42,5 +42,5 @@ xstar  = [
     0.1566571  
     0.2458183  
 ];
-assert_checkalmostequal ( xopt , xstar , 1.e-6 );
+assert_checkalmostequal ( xopt , xstar , 1.e-6, 1.e-6 );
 
index 48ef1a2..4df8006 100644 (file)
@@ -83,5 +83,5 @@ Iteration #130, Feval #194, Fval = 0.0006215, x = 0.9932147 0.9888743, Size = 0.
 =================================
 End of Optimization
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal(xopt,[1;1],1.d-2);
+assert_checkalmostequal(xopt,[1;1],1.d-1);
 nm = neldermead_destroy(nm);
index 2896998..cc441b4 100644 (file)
@@ -63,7 +63,7 @@ nm = neldermead_configure(nm,"-maxiter",200);
 nm = neldermead_configure(nm,"-outputcommand",myoutputcmd);
 nm = neldermead_search(nm);
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal(xopt,[1;1],1.d-2);
+assert_checkalmostequal(xopt,[1;1],1.d-1);
 nm = neldermead_destroy(nm);
 
 
index c1bc436..85e7d9f 100644 (file)
@@ -78,7 +78,7 @@ assert_checkalmostequal ( Hcomputed , Hexpected , %eps );
 // 2.8 Test order 4
 [Jcomputed , Hcomputed] = derivative(myfunction2,x,order=4);
 assert_checkalmostequal ( Jcomputed , Jexpected , %eps );
-assert_checkalmostequal ( Hcomputed , Hexpected , 1.e-10 );
+assert_checkalmostequal ( Hcomputed , Hexpected , 1.e-10, 1.e-10 );
 // 3. Test H_form
 // 3.1 Test H_form="default"
 Jexpected = [4.0 2.0];
index 48d968f..dd02321 100644 (file)
@@ -78,7 +78,7 @@ assert_checkalmostequal ( Hcomputed , Hexpected , %eps );
 // 2.8 Test order 4
 [Jcomputed , Hcomputed] = derivative(myfunction2,x,order=4);
 assert_checkalmostequal ( Jcomputed , Jexpected , %eps );
-assert_checkalmostequal ( Hcomputed , Hexpected , 1.e-10 );
+assert_checkalmostequal ( Hcomputed , Hexpected , 1.e-10, 1.e-10 );
 // 3. Test H_form
 // 3.1 Test H_form="default"
 Jexpected = [4.0 2.0];
index 0565955..dbb364e 100644 (file)
@@ -85,7 +85,7 @@ assert_checkalmostequal ( Hcomputed , Hexpected , %eps );
 // 2.8 Test order 4
 [Jcomputed , Hcomputed] = derivative(myfunction2,x,order=4);
 assert_checkalmostequal ( Jcomputed , Jexpected , %eps );
-assert_checkalmostequal ( Hcomputed , Hexpected , 1.e-10 );
+assert_checkalmostequal ( Hcomputed , Hexpected , 1.e-10, 1.e-10 );
 
 // 3. Test H_form
 // 3.1 Test H_form="default"
index 78365bb..7867e51 100644 (file)
@@ -26,19 +26,19 @@ x0 = [
 0.0820513
 ];
 [xopt,fopt]=karmarkar(Aeq,beq,c,x0);
-assert_checkalmostequal ( xopt , xexpected , 1.e-3 );
+assert_checkalmostequal ( xopt , xexpected , 1.e-3 , 1.e-3 );
 assert_checkalmostequal ( fopt , fexpected , 1.e-4 );
 //
 // Configure the relative tolerance
 rtolf=1.e-6;
 [xopt,fopt]=karmarkar(Aeq,beq,c,x0,rtolf);
-assert_checkalmostequal ( xopt , xexpected , 1.e-4 );
+assert_checkalmostequal ( xopt , xexpected , 1.e-4, 1.e-3  );
 assert_checkalmostequal ( fopt , fexpected , 1.e-5 );
 //
 // Configure the gamma
 gam = 0.1;
 [xopt,fopt]=karmarkar(Aeq,beq,c,x0,[],gam);
-assert_checkalmostequal ( xopt , xexpected , 1.e-3 );
+assert_checkalmostequal ( xopt , xexpected , 1.e-3, 1.e-2  );
 assert_checkalmostequal ( fopt , fexpected , 1.e-4 );
 ////////////////////////////////////////////////////////////
 //
@@ -46,13 +46,13 @@ assert_checkalmostequal ( fopt , fexpected , 1.e-4 );
 //
 // Check exit flag
 [xopt,fopt,exitflag]=karmarkar(Aeq,beq,c,x0);
-assert_checkalmostequal ( xopt , xexpected , 1.e-3 );
+assert_checkalmostequal ( xopt , xexpected , 1.e-3, 1.e-3 );
 assert_checkalmostequal ( fopt , fexpected , 1.e-4 );
 assert_checkequal ( exitflag , 1 );
 //
 // Check number of iterations
 [xopt,fopt,exitflag,iter]=karmarkar(Aeq,beq,c,x0);
-assert_checkalmostequal ( xopt , xexpected , 1.e-3 );
+assert_checkalmostequal ( xopt , xexpected , 1.e-3, 1.e-3 );
 assert_checkalmostequal ( fopt , fexpected , 1.e-4 );
 assert_checkequal ( exitflag , 1 );
 assert_checkequal ( iter>10 , %t );
@@ -63,13 +63,13 @@ lambda.ineqlin = [];
 lambda.eqlin = [28/9;8/3];
 lambda.upper = [0;0;0;0];
 lambda.lower = [0;0;28/9;8/3];
-assert_checkalmostequal ( xopt , xexpected , 1.e-3 );
+assert_checkalmostequal ( xopt , xexpected , 1.e-3, 1.e-3 );
 assert_checkalmostequal ( fopt , fexpected , 1.e-4 );
 assert_checkequal ( exitflag , 1 );
 assert_checkequal ( iter>10 , %t );
 assert_checkequal ( yopt.ineqlin , lambda.ineqlin );
 assert_checkalmostequal ( yopt.eqlin , lambda.eqlin , 1.e-8 );
-assert_checkalmostequal ( yopt.lower , lambda.lower , 1.e-8 );
+assert_checkalmostequal ( yopt.lower , lambda.lower , 1.e-8, 1.e-7 );
 assert_checkequal ( yopt.upper , lambda.upper );
 //
 // Check number of iterations, with default options
@@ -85,18 +85,18 @@ function stop = myoutputfunction ( xopt , optimValues , state )
     stop = %f
 endfunction
 xopt=karmarkar(Aeq,beq,c,x0,[],[],[],myoutputfunction);
-assert_checkalmostequal ( xopt , xexpected , 1.e-3 );
+assert_checkalmostequal ( xopt , xexpected , 1.e-3 , 1.e-3 );
 //
 // Check output function, without initial guess
 xopt=karmarkar(Aeq,beq,c,[],[],[],[],myoutputfunction);
-assert_checkalmostequal ( xopt , xexpected , 1.e-3 );
+assert_checkalmostequal ( xopt , xexpected , 1.e-3 , 1.e-3 );
 //
 // Check that the output function can stop the algorithm
 function stop = myoutputfunctionStop ( xopt , optimValues , state )
     stop = (iter >= 7)
 endfunction
 [xopt,fopt,exitflag,iter]=karmarkar(Aeq,beq,c,x0,[],[],[],myoutputfunctionStop);
-assert_checkalmostequal ( xopt , xexpected , 1.e-2 );
+assert_checkalmostequal ( xopt , xexpected , 1.e-3 , 1.e-1 );
 assert_checkalmostequal ( fopt , fexpected , 1.e-3 );
 assert_checkequal ( exitflag , -4 );
 assert_checkequal ( iter , 7 );
@@ -108,7 +108,7 @@ function stop = myoutputfunction2 ( xopt , optimValues , state , myAeq , mybeq ,
     stop = %f
 endfunction
 xopt=karmarkar(Aeq,beq,c,x0,[],[],[],list(myoutputfunction2,Aeq,beq,c));
-assert_checkalmostequal ( xopt , xexpected , 1.e-3 );
+assert_checkalmostequal ( xopt , xexpected , 1.e-3 , 1.e-3 );
 //
 // References
 // "Practical Optimization", Antoniou, Lu, 2007
@@ -137,13 +137,13 @@ lambda.ineqlin = [];
 lambda.eqlin = [-3.5;-0.5];
 lambda.upper = [0;0;0;0;0];
 lambda.lower = [8.5;0;0;3.5;0.5];
-assert_checkalmostequal ( xopt , xstar , 1.e-4 );
+assert_checkalmostequal ( xopt , xstar , 1.e-4 , 1.e-4 );
 assert_checkalmostequal ( fopt , fstar , 1.e-4 );
 assert_checkequal ( exitflag , 1 );
 assert_checkequal ( iter , 4 );
 assert_checkequal ( yopt.ineqlin , lambda.ineqlin );
-assert_checkalmostequal ( yopt.eqlin , lambda.eqlin , 1.e-6 );
-assert_checkalmostequal ( yopt.lower , lambda.lower , 1.e-6 );
+assert_checkalmostequal ( yopt.eqlin , lambda.eqlin , 1.e-6 , 1.e-6 );
+assert_checkalmostequal ( yopt.lower , lambda.lower , 1.e-6 , 1.e-6 );
 assert_checkequal ( yopt.upper , lambda.upper );
 //
 // Minimize -x1 -x2
@@ -165,13 +165,13 @@ lambda.ineqlin = [];
 lambda.eqlin = [0;1];
 lambda.upper = [0;0;0];
 lambda.lower = [0;0;1];
-assert_checkalmostequal ( xopt , xstar , 1.e-4 );
+assert_checkalmostequal ( xopt , xstar , 1.e-4 , 1.e-4 );
 assert_checkalmostequal ( fopt , fstar , 1.e-4 );
 assert_checkequal ( exitflag , 1 );
 assert_checkequal ( iter > 0 , %t );
 assert_checkequal ( yopt.ineqlin , lambda.ineqlin );
-assert_checkalmostequal ( yopt.eqlin , lambda.eqlin , 1.e-6 );
-assert_checkalmostequal ( yopt.lower , lambda.lower , 1.e-6 );
+assert_checkalmostequal ( yopt.eqlin , lambda.eqlin , 1.e-6 , 1.e-15);
+assert_checkalmostequal ( yopt.lower , lambda.lower , 1.e-6 , 1.e-6 );
 assert_checkequal ( yopt.upper , lambda.upper );
 //
 // Give a linear inequality A*x <= b.
@@ -196,7 +196,7 @@ lambda.ineqlin = 1;
 lambda.eqlin = 0;
 lambda.upper = [0;0];
 lambda.lower = [0;0];
-assert_checkalmostequal ( xopt , xstar , 1.e-4 );
+assert_checkalmostequal ( xopt , xstar , 1.e-4 , 1.e-4 );
 assert_checkalmostequal ( fopt , fstar , 1.e-4 );
 assert_checkequal ( exitflag , 1 );
 assert_checkequal ( iter > 0 , %t );
@@ -296,7 +296,7 @@ x0 = [0.2;0.7;1];
 [xopt,fopt,exitflag,iter]=karmarkar(Aeq,beq,c,x0,[],[],[],[],A,b);
 xstar = [0 1/3 1/3]';
 fstar = c'*xstar;
-assert_checkalmostequal ( xopt , xstar , 1.e-4 );
+assert_checkalmostequal ( xopt , xstar , 1.e-4 , 1.e-4 );
 assert_checkalmostequal ( fopt , fstar , 1.e-4 );
 assert_checkequal ( exitflag , 1 );
 assert_checkequal ( iter > 0 , %t );
@@ -305,7 +305,7 @@ assert_checkequal ( iter > 0 , %t );
 [xopt,fopt,exitflag,iter]=karmarkar(Aeq,beq,c,[],[],[],[],[],A,b);
 xstar = [0 1/3 1/3]';
 fstar = c'*xstar;
-assert_checkalmostequal ( xopt , xstar , 1.e-4 );
+assert_checkalmostequal ( xopt , xstar , 1.e-4 , 1.e-4 );
 assert_checkalmostequal ( fopt , fstar , 1.e-4 );
 assert_checkequal ( exitflag , 1 );
 assert_checkequal ( iter > 0 , %t );
@@ -353,7 +353,7 @@ assert_checkalmostequal ( xopt , xstar , 1.e-4 );
 assert_checkalmostequal ( fopt , fstar , 1.e-4 );
 assert_checkequal ( exitflag , 1 );
 assert_checkequal ( iter > 0 , %t );
-assert_checkalmostequal ( yopt.ineqlin , lambda.ineqlin , 1.e-9 );
+assert_checkalmostequal ( yopt.ineqlin , lambda.ineqlin , 1.e-9 , 1.e-10 );
 assert_checkequal ( yopt.eqlin , lambda.eqlin );
 assert_checkequal ( yopt.lower , lambda.lower );
 assert_checkequal ( yopt.upper , lambda.upper );
@@ -387,7 +387,7 @@ assert_checkalmostequal ( xopt , xstar , 1.e-4 );
 assert_checkalmostequal ( fopt , fstar , 1.e-4 );
 assert_checkequal ( exitflag , 1 );
 assert_checkequal ( iter > 0 , %t );
-assert_checkalmostequal ( yopt.ineqlin , lambda.ineqlin , 1.e-9 );
+assert_checkalmostequal ( yopt.ineqlin , lambda.ineqlin , 1.e-9 , 1.e-8 );
 assert_checkequal ( yopt.eqlin , lambda.eqlin );
 assert_checkequal ( yopt.lower , lambda.lower );
 assert_checkequal ( yopt.upper , lambda.upper );
@@ -414,9 +414,9 @@ assert_checkalmostequal ( xopt , xstar , 1.e-4 );
 assert_checkalmostequal ( fopt , fstar , 1.e-4 );
 assert_checkequal ( exitflag , 1 );
 assert_checkequal ( iter > 0 , %t );
-assert_checkalmostequal ( yopt.ineqlin , lambda.ineqlin , 1.e-9 );
+assert_checkalmostequal ( yopt.ineqlin , lambda.ineqlin , 1.e-8 );
 assert_checkequal ( yopt.eqlin , lambda.eqlin );
-assert_checkalmostequal ( yopt.lower , lambda.lower , 1.e-9 );
+assert_checkalmostequal ( yopt.lower , lambda.lower , 1.e-9 , 1.e-8 );
 assert_checkequal ( yopt.upper , lambda.upper );
 //
 // Set lower bound and give x0.
@@ -441,9 +441,9 @@ assert_checkalmostequal ( xopt , xstar , 1.e-4 );
 assert_checkalmostequal ( fopt , fstar , 1.e-4 );
 assert_checkequal ( exitflag , 1 );
 assert_checkequal ( iter > 0 , %t );
-assert_checkalmostequal ( yopt.ineqlin , lambda.ineqlin , 1.e-9 );
-assert_checkalmostequal ( yopt.eqlin , lambda.eqlin , %eps );
-assert_checkalmostequal ( yopt.lower , lambda.lower , 1.e-9 );
+assert_checkalmostequal ( yopt.ineqlin , lambda.ineqlin , 1.e-9 , 1.e-8 );
+assert_checkalmostequal ( yopt.eqlin , lambda.eqlin , %eps , 1.e-8 );
+assert_checkalmostequal ( yopt.lower , lambda.lower , 1.e-9 , 1.e-8 );
 assert_checkalmostequal ( yopt.upper , lambda.upper , 1.e-9 );
 // References
 // LIPSOL is a set of Linear-programming Interior-Point SOLvers written 
@@ -487,8 +487,8 @@ assert_checkequal ( exitflag , 1 );
 assert_checkequal ( iter > 0 , %t );
 assert_checkalmostequal ( yopt.ineqlin , lambda.ineqlin , [] , 1.e-9 );
 assert_checkequal ( yopt.eqlin , lambda.eqlin );
-assert_checkalmostequal ( yopt.lower , lambda.lower , 1.e-9 );
-assert_checkalmostequal ( yopt.upper , lambda.upper , 1.e-9 );
+assert_checkalmostequal ( yopt.lower , lambda.lower , 1.e-9 , 1.e-10 );
+assert_checkalmostequal ( yopt.upper , lambda.upper , 1.e-9 , 1.e-10 );
 //
 // An unbounded problem.
 c = [-20 -24]';
index aee86c3..69d014d 100644 (file)
@@ -31,19 +31,19 @@ x0 = [
 0.0820513
 ];
 [xopt,fopt]=karmarkar(Aeq,beq,c,x0);
-assert_checkalmostequal ( xopt , xexpected , 1.e-3 );
+assert_checkalmostequal ( xopt , xexpected , 1.e-3 , 1.e-3 );
 assert_checkalmostequal ( fopt , fexpected , 1.e-4 );
 //
 // Configure the relative tolerance
 rtolf=1.e-6;
 [xopt,fopt]=karmarkar(Aeq,beq,c,x0,rtolf);
-assert_checkalmostequal ( xopt , xexpected , 1.e-4 );
+assert_checkalmostequal ( xopt , xexpected , 1.e-4, 1.e-3  );
 assert_checkalmostequal ( fopt , fexpected , 1.e-5 );
 //
 // Configure the gamma
 gam = 0.1;
 [xopt,fopt]=karmarkar(Aeq,beq,c,x0,[],gam);
-assert_checkalmostequal ( xopt , xexpected , 1.e-3 );
+assert_checkalmostequal ( xopt , xexpected , 1.e-3, 1.e-2  );
 assert_checkalmostequal ( fopt , fexpected , 1.e-4 );
 ////////////////////////////////////////////////////////////
 //
@@ -51,13 +51,13 @@ assert_checkalmostequal ( fopt , fexpected , 1.e-4 );
 //
 // Check exit flag
 [xopt,fopt,exitflag]=karmarkar(Aeq,beq,c,x0);
-assert_checkalmostequal ( xopt , xexpected , 1.e-3 );
+assert_checkalmostequal ( xopt , xexpected , 1.e-3, 1.e-3 );
 assert_checkalmostequal ( fopt , fexpected , 1.e-4 );
 assert_checkequal ( exitflag , 1 );
 //
 // Check number of iterations
 [xopt,fopt,exitflag,iter]=karmarkar(Aeq,beq,c,x0);
-assert_checkalmostequal ( xopt , xexpected , 1.e-3 );
+assert_checkalmostequal ( xopt , xexpected , 1.e-3, 1.e-3 );
 assert_checkalmostequal ( fopt , fexpected , 1.e-4 );
 assert_checkequal ( exitflag , 1 );
 assert_checkequal ( iter>10 , %t );
@@ -68,13 +68,13 @@ lambda.ineqlin = [];
 lambda.eqlin = [28/9;8/3];
 lambda.upper = [0;0;0;0];
 lambda.lower = [0;0;28/9;8/3];
-assert_checkalmostequal ( xopt , xexpected , 1.e-3 );
+assert_checkalmostequal ( xopt , xexpected , 1.e-3, 1.e-3 );
 assert_checkalmostequal ( fopt , fexpected , 1.e-4 );
 assert_checkequal ( exitflag , 1 );
 assert_checkequal ( iter>10 , %t );
 assert_checkequal ( yopt.ineqlin , lambda.ineqlin );
 assert_checkalmostequal ( yopt.eqlin , lambda.eqlin , 1.e-8 );
-assert_checkalmostequal ( yopt.lower , lambda.lower , 1.e-8 );
+assert_checkalmostequal ( yopt.lower , lambda.lower , 1.e-8, 1.e-7 );
 assert_checkequal ( yopt.upper , lambda.upper );
 //
 // Check number of iterations, with default options
@@ -90,18 +90,18 @@ function stop = myoutputfunction ( xopt , optimValues , state )
     stop = %f
 endfunction
 xopt=karmarkar(Aeq,beq,c,x0,[],[],[],myoutputfunction);
-assert_checkalmostequal ( xopt , xexpected , 1.e-3 );
+assert_checkalmostequal ( xopt , xexpected , 1.e-3 , 1.e-3 );
 //
 // Check output function, without initial guess
 xopt=karmarkar(Aeq,beq,c,[],[],[],[],myoutputfunction);
-assert_checkalmostequal ( xopt , xexpected , 1.e-3 );
+assert_checkalmostequal ( xopt , xexpected , 1.e-3 , 1.e-3 );
 //
 // Check that the output function can stop the algorithm
 function stop = myoutputfunctionStop ( xopt , optimValues , state )
     stop = (iter >= 7)
 endfunction
 [xopt,fopt,exitflag,iter]=karmarkar(Aeq,beq,c,x0,[],[],[],myoutputfunctionStop);
-assert_checkalmostequal ( xopt , xexpected , 1.e-2 );
+assert_checkalmostequal ( xopt , xexpected , 1.e-3 , 1.e-1 );
 assert_checkalmostequal ( fopt , fexpected , 1.e-3 );
 assert_checkequal ( exitflag , -4 );
 assert_checkequal ( iter , 7 );
@@ -113,7 +113,7 @@ function stop = myoutputfunction2 ( xopt , optimValues , state , myAeq , mybeq ,
     stop = %f
 endfunction
 xopt=karmarkar(Aeq,beq,c,x0,[],[],[],list(myoutputfunction2,Aeq,beq,c));
-assert_checkalmostequal ( xopt , xexpected , 1.e-3 );
+assert_checkalmostequal ( xopt , xexpected , 1.e-3 , 1.e-3 );
 //
 // References
 // "Practical Optimization", Antoniou, Lu, 2007
@@ -142,13 +142,13 @@ lambda.ineqlin = [];
 lambda.eqlin = [-3.5;-0.5];
 lambda.upper = [0;0;0;0;0];
 lambda.lower = [8.5;0;0;3.5;0.5];
-assert_checkalmostequal ( xopt , xstar , 1.e-4 );
+assert_checkalmostequal ( xopt , xstar , 1.e-4 , 1.e-4 );
 assert_checkalmostequal ( fopt , fstar , 1.e-4 );
 assert_checkequal ( exitflag , 1 );
 assert_checkequal ( iter , 4 );
 assert_checkequal ( yopt.ineqlin , lambda.ineqlin );
-assert_checkalmostequal ( yopt.eqlin , lambda.eqlin , 1.e-6 );
-assert_checkalmostequal ( yopt.lower , lambda.lower , 1.e-6 );
+assert_checkalmostequal ( yopt.eqlin , lambda.eqlin , 1.e-6 , 1.e-6 );
+assert_checkalmostequal ( yopt.lower , lambda.lower , 1.e-6 , 1.e-6 );
 assert_checkequal ( yopt.upper , lambda.upper );
 //
 // Minimize -x1 -x2
@@ -170,13 +170,13 @@ lambda.ineqlin = [];
 lambda.eqlin = [0;1];
 lambda.upper = [0;0;0];
 lambda.lower = [0;0;1];
-assert_checkalmostequal ( xopt , xstar , 1.e-4 );
+assert_checkalmostequal ( xopt , xstar , 1.e-4 , 1.e-4 );
 assert_checkalmostequal ( fopt , fstar , 1.e-4 );
 assert_checkequal ( exitflag , 1 );
 assert_checkequal ( iter > 0 , %t );
 assert_checkequal ( yopt.ineqlin , lambda.ineqlin );
-assert_checkalmostequal ( yopt.eqlin , lambda.eqlin , 1.e-6 );
-assert_checkalmostequal ( yopt.lower , lambda.lower , 1.e-6 );
+assert_checkalmostequal ( yopt.eqlin , lambda.eqlin , 1.e-6 , 1.e-15);
+assert_checkalmostequal ( yopt.lower , lambda.lower , 1.e-6 , 1.e-6 );
 assert_checkequal ( yopt.upper , lambda.upper );
 //
 // Give a linear inequality A*x <= b.
@@ -201,7 +201,7 @@ lambda.ineqlin = 1;
 lambda.eqlin = 0;
 lambda.upper = [0;0];
 lambda.lower = [0;0];
-assert_checkalmostequal ( xopt , xstar , 1.e-4 );
+assert_checkalmostequal ( xopt , xstar , 1.e-4 , 1.e-4 );
 assert_checkalmostequal ( fopt , fstar , 1.e-4 );
 assert_checkequal ( exitflag , 1 );
 assert_checkequal ( iter > 0 , %t );
@@ -301,7 +301,7 @@ x0 = [0.2;0.7;1];
 [xopt,fopt,exitflag,iter]=karmarkar(Aeq,beq,c,x0,[],[],[],[],A,b);
 xstar = [0 1/3 1/3]';
 fstar = c'*xstar;
-assert_checkalmostequal ( xopt , xstar , 1.e-4 );
+assert_checkalmostequal ( xopt , xstar , 1.e-4 , 1.e-4 );
 assert_checkalmostequal ( fopt , fstar , 1.e-4 );
 assert_checkequal ( exitflag , 1 );
 assert_checkequal ( iter > 0 , %t );
@@ -310,7 +310,7 @@ assert_checkequal ( iter > 0 , %t );
 [xopt,fopt,exitflag,iter]=karmarkar(Aeq,beq,c,[],[],[],[],[],A,b);
 xstar = [0 1/3 1/3]';
 fstar = c'*xstar;
-assert_checkalmostequal ( xopt , xstar , 1.e-4 );
+assert_checkalmostequal ( xopt , xstar , 1.e-4 , 1.e-4 );
 assert_checkalmostequal ( fopt , fstar , 1.e-4 );
 assert_checkequal ( exitflag , 1 );
 assert_checkequal ( iter > 0 , %t );
@@ -359,7 +359,7 @@ assert_checkalmostequal ( xopt , xstar , 1.e-4 );
 assert_checkalmostequal ( fopt , fstar , 1.e-4 );
 assert_checkequal ( exitflag , 1 );
 assert_checkequal ( iter > 0 , %t );
-assert_checkalmostequal ( yopt.ineqlin , lambda.ineqlin , 1.e-9 );
+assert_checkalmostequal ( yopt.ineqlin , lambda.ineqlin , 1.e-9 , 1.e-10 );
 assert_checkequal ( yopt.eqlin , lambda.eqlin );
 assert_checkequal ( yopt.lower , lambda.lower );
 assert_checkequal ( yopt.upper , lambda.upper );
@@ -394,7 +394,7 @@ assert_checkalmostequal ( xopt , xstar , 1.e-4 );
 assert_checkalmostequal ( fopt , fstar , 1.e-4 );
 assert_checkequal ( exitflag , 1 );
 assert_checkequal ( iter > 0 , %t );
-assert_checkalmostequal ( yopt.ineqlin , lambda.ineqlin , 1.e-9 );
+assert_checkalmostequal ( yopt.ineqlin , lambda.ineqlin , 1.e-9 , 1.e-8 );
 assert_checkequal ( yopt.eqlin , lambda.eqlin );
 assert_checkequal ( yopt.lower , lambda.lower );
 assert_checkequal ( yopt.upper , lambda.upper );
@@ -422,9 +422,9 @@ assert_checkalmostequal ( xopt , xstar , 1.e-4 );
 assert_checkalmostequal ( fopt , fstar , 1.e-4 );
 assert_checkequal ( exitflag , 1 );
 assert_checkequal ( iter > 0 , %t );
-assert_checkalmostequal ( yopt.ineqlin , lambda.ineqlin , 1.e-9 );
+assert_checkalmostequal ( yopt.ineqlin , lambda.ineqlin , 1.e-8 );
 assert_checkequal ( yopt.eqlin , lambda.eqlin );
-assert_checkalmostequal ( yopt.lower , lambda.lower , 1.e-9 );
+assert_checkalmostequal ( yopt.lower , lambda.lower , 1.e-9 , 1.e-8 );
 assert_checkequal ( yopt.upper , lambda.upper );
 //
 // Set lower bound and give x0.
@@ -449,9 +449,9 @@ assert_checkalmostequal ( xopt , xstar , 1.e-4 );
 assert_checkalmostequal ( fopt , fstar , 1.e-4 );
 assert_checkequal ( exitflag , 1 );
 assert_checkequal ( iter > 0 , %t );
-assert_checkalmostequal ( yopt.ineqlin , lambda.ineqlin , 1.e-9 );
-assert_checkalmostequal ( yopt.eqlin , lambda.eqlin , %eps );
-assert_checkalmostequal ( yopt.lower , lambda.lower , 1.e-9 );
+assert_checkalmostequal ( yopt.ineqlin , lambda.ineqlin , 1.e-9 , 1.e-8 );
+assert_checkalmostequal ( yopt.eqlin , lambda.eqlin , %eps , 1.e-8 );
+assert_checkalmostequal ( yopt.lower , lambda.lower , 1.e-9 , 1.e-8 );
 assert_checkalmostequal ( yopt.upper , lambda.upper , 1.e-9 );
 // References
 // LIPSOL is a set of Linear-programming Interior-Point SOLvers written 
@@ -495,8 +495,8 @@ assert_checkequal ( exitflag , 1 );
 assert_checkequal ( iter > 0 , %t );
 assert_checkalmostequal ( yopt.ineqlin , lambda.ineqlin , [] , 1.e-9 );
 assert_checkequal ( yopt.eqlin , lambda.eqlin );
-assert_checkalmostequal ( yopt.lower , lambda.lower , 1.e-9 );
-assert_checkalmostequal ( yopt.upper , lambda.upper , 1.e-9 );
+assert_checkalmostequal ( yopt.lower , lambda.lower , 1.e-9 , 1.e-10 );
+assert_checkalmostequal ( yopt.upper , lambda.upper , 1.e-9 , 1.e-10 );
 //
 // An unbounded problem.
 c = [-20 -24]';
@@ -558,6 +558,7 @@ A=-A;
 b=[1;2];
 b=-b;
 lb=[0;0];
+
 [xopt,fopt,exitflag,iter,yopt]=karmarkar([],[],c,[],[],[],[],[],A,b,lb);
 assert_checkequal ( exitflag , -2 );
 
index 81b0438..afb9079 100644 (file)
@@ -141,7 +141,7 @@ nm = neldermead_configure(nm,"-method","variable");
 nm = neldermead_search(nm);
 nm = neldermead_restart ( nm );
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-3 );
+assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-3 , 1.e-3 );
 fopt = neldermead_get(nm,"-fopt");
 assert_checkalmostequal ( fopt , -0.25 , 1e-6 );
 status = neldermead_get(nm,"-status");
@@ -187,7 +187,7 @@ nm = neldermead_search(nm);
 status = neldermead_get(nm,"-status");
 assert_checkequal ( status , "tolx" );
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-5 );
+assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-5 , 1.e-6 );
 fopt = neldermead_get(nm,"-fopt");
 assert_checkalmostequal ( fopt , -0.25 , 1e-6 );
 iterations = neldermead_get(nm,"-iterations");
@@ -217,7 +217,7 @@ nm = neldermead_search(nm);
 status = neldermead_get(nm,"-status");
 assert_checkequal ( status , "tolsize" );
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-1 );
+assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-4 , 1.e-3);
 fopt = neldermead_get(nm,"-fopt");
 assert_checkalmostequal ( fopt , -0.25 , 1e-4 );
 iterations = neldermead_get(nm,"-iterations");
@@ -250,7 +250,7 @@ nm = neldermead_search(nm);
 status = neldermead_get(nm,"-status");
 assert_checkequal ( status , "tolsize" );
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-2 );
+assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-3 , 1.e-2 );
 fopt = neldermead_get(nm,"-fopt");
 assert_checkalmostequal ( fopt , -0.25 , 1e-4 );
 iterations = neldermead_get(nm,"-iterations");
@@ -283,7 +283,7 @@ nm = neldermead_search(nm);
 status = neldermead_get(nm,"-status");
 assert_checkequal ( status , "tolsize" );
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-1 );
+assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-2, 1.e-2 );
 fopt = neldermead_get(nm,"-fopt");
 assert_checkalmostequal ( fopt , -0.25 , 1e-4 );
 iterations = neldermead_get(nm,"-iterations");
@@ -317,7 +317,7 @@ nm = neldermead_search(nm);
 status = neldermead_get(nm,"-status");
 assert_checkequal ( status , "tolsize" );
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-1 );
+assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-5 , 1.e-4);
 fopt = neldermead_get(nm,"-fopt");
 assert_checkalmostequal ( fopt , -0.25 , 1e-4 );
 iterations = neldermead_get(nm,"-iterations");
@@ -347,7 +347,7 @@ nm = neldermead_configure(nm,"-restartdetection","oneill");
 nm = neldermead_configure(nm,"-restartstep", 0.5 );
 nm = neldermead_search(nm);
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-1 );
+assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-3, 1.e-3 );
 iterations = neldermead_get(nm,"-iterations");
 assert_checkequal ( ( iterations > 40 ) , %t );
 restartnb = neldermead_get ( nm , "-restartnb" );
@@ -375,7 +375,7 @@ nm = neldermead_configure(nm,"-restartdetection","oneill");
 nm = neldermead_configure(nm,"-restartstep", [0.5 0.1]');
 nm = neldermead_search(nm);
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-1 );
+assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-3, 1.e-3 );
 iterations = neldermead_get(nm,"-iterations");
 assert_checkequal ( ( iterations > 40 ) , %t );
 restartnb = neldermead_get ( nm , "-restartnb" );
@@ -403,7 +403,7 @@ nm = neldermead_configure(nm,"-restartdetection","oneill");
 nm = neldermead_configure(nm,"-restarteps", 0.1);
 nm = neldermead_search(nm);
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-1 );
+assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-3, 1.e-3 );
 iterations = neldermead_get(nm,"-iterations");
 assert_checkequal ( ( iterations > 40 ) , %t );
 restartnb = neldermead_get ( nm , "-restartnb" );
index 484587e..892caab 100644 (file)
@@ -155,7 +155,7 @@ nm = neldermead_configure(nm,"-method","variable");
 nm = neldermead_search(nm);
 nm = neldermead_restart ( nm );
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-3 );
+assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-3 , 1.e-3 );
 fopt = neldermead_get(nm,"-fopt");
 assert_checkalmostequal ( fopt , -0.25 , 1e-6 );
 status = neldermead_get(nm,"-status");
@@ -203,7 +203,7 @@ nm = neldermead_search(nm);
 status = neldermead_get(nm,"-status");
 assert_checkequal ( status , "tolx" );
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-5 );
+assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-5 , 1.e-6 );
 fopt = neldermead_get(nm,"-fopt");
 assert_checkalmostequal ( fopt , -0.25 , 1e-6 );
 iterations = neldermead_get(nm,"-iterations");
@@ -234,7 +234,7 @@ nm = neldermead_search(nm);
 status = neldermead_get(nm,"-status");
 assert_checkequal ( status , "tolsize" );
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-1 );
+assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-4 , 1.e-3);
 fopt = neldermead_get(nm,"-fopt");
 assert_checkalmostequal ( fopt , -0.25 , 1e-4 );
 iterations = neldermead_get(nm,"-iterations");
@@ -268,7 +268,7 @@ nm = neldermead_search(nm);
 status = neldermead_get(nm,"-status");
 assert_checkequal ( status , "tolsize" );
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-2 );
+assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-3 , 1.e-2 );
 fopt = neldermead_get(nm,"-fopt");
 assert_checkalmostequal ( fopt , -0.25 , 1e-4 );
 iterations = neldermead_get(nm,"-iterations");
@@ -302,7 +302,7 @@ nm = neldermead_search(nm);
 status = neldermead_get(nm,"-status");
 assert_checkequal ( status , "tolsize" );
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-1 );
+assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-2, 1.e-2 );
 fopt = neldermead_get(nm,"-fopt");
 assert_checkalmostequal ( fopt , -0.25 , 1e-4 );
 iterations = neldermead_get(nm,"-iterations");
@@ -337,7 +337,7 @@ nm = neldermead_search(nm);
 status = neldermead_get(nm,"-status");
 assert_checkequal ( status , "tolsize" );
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-1 );
+assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-5 , 1.e-4);
 fopt = neldermead_get(nm,"-fopt");
 assert_checkalmostequal ( fopt , -0.25 , 1e-4 );
 iterations = neldermead_get(nm,"-iterations");
@@ -368,7 +368,7 @@ nm = neldermead_configure(nm,"-restartdetection","oneill");
 nm = neldermead_configure(nm,"-restartstep", 0.5 );
 nm = neldermead_search(nm);
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-1 );
+assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-3, 1.e-3 );
 iterations = neldermead_get(nm,"-iterations");
 assert_checkequal ( ( iterations > 40 ) , %t );
 restartnb = neldermead_get ( nm , "-restartnb" );
@@ -397,7 +397,7 @@ nm = neldermead_configure(nm,"-restartdetection","oneill");
 nm = neldermead_configure(nm,"-restartstep", [0.5 0.1]');
 nm = neldermead_search(nm);
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-1 );
+assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-3, 1.e-3 );
 iterations = neldermead_get(nm,"-iterations");
 assert_checkequal ( ( iterations > 40 ) , %t );
 restartnb = neldermead_get ( nm , "-restartnb" );
@@ -426,7 +426,7 @@ nm = neldermead_configure(nm,"-restartdetection","oneill");
 nm = neldermead_configure(nm,"-restarteps", 0.1);
 nm = neldermead_search(nm);
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-1 );
+assert_checkalmostequal ( xopt , [0.0;-0.5], 1e-3, 1.e-3 );
 iterations = neldermead_get(nm,"-iterations");
 assert_checkequal ( ( iterations > 40 ) , %t );
 restartnb = neldermead_get ( nm , "-restartnb" );
index 021e26b..22b7b69 100644 (file)
@@ -368,7 +368,7 @@ nm = neldermead_configure(nm,"-mymethod",neldermead_constraints);
 nm = neldermead_search(nm);
 // Check optimum point
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0 1.0 2.0 -1.0]', 1e-3 );
+assert_checkalmostequal ( xopt , [0.0 1.0 2.0 -1.0]', 1e-3, 1e-3 );
 // Check optimum point value
 fopt = neldermead_get(nm,"-fopt");
 assert_checkalmostequal ( fopt , -44.0 , 1e-5 );
index 54fdd74..2ad222e 100644 (file)
@@ -376,7 +376,7 @@ nm = neldermead_configure(nm,"-mymethod",neldermead_constraints);
 nm = neldermead_search(nm);
 // Check optimum point
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0 1.0 2.0 -1.0]', 1e-3 );
+assert_checkalmostequal ( xopt , [0.0 1.0 2.0 -1.0]', 1e-3, 1e-3 );
 // Check optimum point value
 fopt = neldermead_get(nm,"-fopt");
 assert_checkalmostequal ( fopt , -44.0 , 1e-5 );
index ed4770b..23fd7bf 100644 (file)
@@ -94,7 +94,7 @@ nm = neldermead_configure(nm,"-nbineqconst",3);
 nm = neldermead_search(nm);
 // Check optimum point
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0 1.0 2.0 -1.0]', 1e-1 );
+assert_checkalmostequal ( xopt , [0.0 1.0 2.0 -1.0]', 1e-1 , 1.e-1);
 // Check optimum point value
 fopt = neldermead_get(nm,"-fopt");
 assert_checkalmostequal ( fopt , -44.0 , 1e-2 );
@@ -119,7 +119,7 @@ nm = neldermead_search(nm);
 nm = neldermead_restart(nm);
 // Check optimum point
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0 1.0 2.0 -1.0]', 1e-1 );
+assert_checkalmostequal ( xopt , [0.0 1.0 2.0 -1.0]', 1e-1, 1e-1 );
 // Check optimum point value
 fopt = neldermead_get(nm,"-fopt");
 assert_checkalmostequal ( fopt , -44.0 , 1e-2 );
@@ -148,7 +148,7 @@ nm = neldermead_configure(nm,"-simplex0length",20.0);
 nm = neldermead_search(nm);
 // Check optimum point
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0 1.0 2.0 -1.0]', 1e-1 );
+assert_checkalmostequal ( xopt , [0.0 1.0 2.0 -1.0]', 1e-1, 1e-1 );
 // Check optimum point value
 fopt = neldermead_get(nm,"-fopt");
 assert_checkalmostequal ( fopt , -44.0 , 1e-3 );
@@ -228,7 +228,7 @@ nm = neldermead_configure(nm,"-boxnbpoints",6);
 nm = neldermead_search(nm);
 // Check optimum point
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0 1.0 2.0 -1.0]', 1e-1 );
+assert_checkalmostequal ( xopt , [0.0 1.0 2.0 -1.0]', 1e-1, 1e-1 );
 // Check optimum point value
 fopt = neldermead_get(nm,"-fopt");
 assert_checkalmostequal ( fopt , -44.0 , 1e-2 );
@@ -241,7 +241,7 @@ nbve = optimsimplex_getnbve ( simplexopt );
 assert_checkequal ( nbve , 6 );
 nm = neldermead_destroy(nm);
 //
-// Test with "tocentroid"
+// Test with "tocenter"
 //
 rand("seed" , 0)
 nm = neldermead_new ();
@@ -262,7 +262,7 @@ nm = neldermead_configure(nm,"-scalingsimplex0","tocenter");
 nm = neldermead_search(nm);
 // Check optimum point
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0 1.0 2.0 -1.0]', 1e-1 );
+assert_checkalmostequal ( xopt , [0.0 1.0 2.0 -1.0]', 1e-1, 1e-1 );
 // Check optimum point value
 fopt = neldermead_get(nm,"-fopt");
 assert_checkalmostequal ( fopt , -44.0 , 1e-2 );
index 378d9a7..4b449bc 100644 (file)
@@ -103,7 +103,7 @@ nm = neldermead_configure(nm,"-nbineqconst",3);
 nm = neldermead_search(nm);
 // Check optimum point
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0 1.0 2.0 -1.0]', 1e-1 );
+assert_checkalmostequal ( xopt , [0.0 1.0 2.0 -1.0]', 1e-1 , 1.e-1);
 // Check optimum point value
 fopt = neldermead_get(nm,"-fopt");
 assert_checkalmostequal ( fopt , -44.0 , 1e-2 );
@@ -129,7 +129,7 @@ nm = neldermead_search(nm);
 nm = neldermead_restart(nm);
 // Check optimum point
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0 1.0 2.0 -1.0]', 1e-1 );
+assert_checkalmostequal ( xopt , [0.0 1.0 2.0 -1.0]', 1e-1, 1e-1 );
 // Check optimum point value
 fopt = neldermead_get(nm,"-fopt");
 assert_checkalmostequal ( fopt , -44.0 , 1e-2 );
@@ -159,7 +159,7 @@ nm = neldermead_configure(nm,"-simplex0length",20.0);
 nm = neldermead_search(nm);
 // Check optimum point
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0 1.0 2.0 -1.0]', 1e-1 );
+assert_checkalmostequal ( xopt , [0.0 1.0 2.0 -1.0]', 1e-1, 1e-1 );
 // Check optimum point value
 fopt = neldermead_get(nm,"-fopt");
 assert_checkalmostequal ( fopt , -44.0 , 1e-3 );
@@ -241,7 +241,7 @@ nm = neldermead_configure(nm,"-boxnbpoints",6);
 nm = neldermead_search(nm);
 // Check optimum point
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0 1.0 2.0 -1.0]', 1e-1 );
+assert_checkalmostequal ( xopt , [0.0 1.0 2.0 -1.0]', 1e-1, 1e-1 );
 // Check optimum point value
 fopt = neldermead_get(nm,"-fopt");
 assert_checkalmostequal ( fopt , -44.0 , 1e-2 );
@@ -276,7 +276,7 @@ nm = neldermead_configure(nm,"-scalingsimplex0","tocenter");
 nm = neldermead_search(nm);
 // Check optimum point
 xopt = neldermead_get(nm,"-xopt");
-assert_checkalmostequal ( xopt , [0.0 1.0 2.0 -1.0]', 1e-1 );
+assert_checkalmostequal ( xopt , [0.0 1.0 2.0 -1.0]', 1e-1, 1e-1 );
 // Check optimum point value
 fopt = neldermead_get(nm,"-fopt");
 assert_checkalmostequal ( fopt , -44.0 , 1e-2 );
index e8c2e11..bf8112a 100644 (file)
@@ -21,7 +21,7 @@ expected = [
     0.  -0.2    1.  
     0.  -1.2    2.  
 ];
-assert_checkalmostequal ( computed , expected , %eps );
+assert_checkalmostequal ( computed , expected , 10*%eps );
 s1 = optimsimplex_destroy ( s1 );
 //
 // Test with function only
@@ -33,7 +33,7 @@ expected = [
     93.6  -0.2    1.  
     36.2  -1.2    2.  
 ];
-assert_checkalmostequal ( computed , expected , %eps );
+assert_checkalmostequal ( computed , expected , 10*%eps );
 s1 = optimsimplex_destroy ( s1 );
 //
 // Test with a scalar length
@@ -45,7 +45,7 @@ expected = [
     13.      0.8    1.  
     248.2  -1.2    3.  
 ];
-assert_checkalmostequal ( computed , expected , %eps );
+assert_checkalmostequal ( computed , expected , 10*%eps );
 s1 = optimsimplex_destroy ( s1 );
 //
 // Test with a vector length
@@ -57,7 +57,7 @@ expected = [
 93.6 -0.2 1.
 248.2 -1.2 3.
 ];
-assert_checkalmostequal ( computed , expected , %eps );
+assert_checkalmostequal ( computed , expected , 10*%eps );
 s1 = optimsimplex_destroy ( s1 );
 //
 // Test with a scalar length and an additionnal object
@@ -75,7 +75,7 @@ expected = [
 93.6 -0.2 1.0
 36.2 -1.2 2.0
 ];
-assert_checkalmostequal ( computed , expected , %eps );
+assert_checkalmostequal ( computed , expected , 10*%eps );
 assert_checkequal ( myobj.nb , 3 );
 nbve = optimsimplex_getnbve ( s1 );
 assert_checkequal ( nbve , 3 );
index 0430a09..e8eaa63 100644 (file)
@@ -24,7 +24,7 @@ expected = [
     0.  -0.2    1.  
     0.  -1.2    2.  
 ];
-assert_checkalmostequal ( computed , expected , %eps );
+assert_checkalmostequal ( computed , expected , 10*%eps );
 s1 = optimsimplex_destroy ( s1 );
 
 //
@@ -37,7 +37,7 @@ expected = [
     93.6  -0.2    1.  
     36.2  -1.2    2.  
 ];
-assert_checkalmostequal ( computed , expected , %eps );
+assert_checkalmostequal ( computed , expected , 10*%eps );
 s1 = optimsimplex_destroy ( s1 );
 
 //
@@ -50,7 +50,7 @@ expected = [
     13.      0.8    1.  
     248.2  -1.2    3.  
 ];
-assert_checkalmostequal ( computed , expected , %eps );
+assert_checkalmostequal ( computed , expected , 10*%eps );
 s1 = optimsimplex_destroy ( s1 );
 
 //
@@ -63,7 +63,7 @@ expected = [
 93.6 -0.2 1.
 248.2 -1.2 3.
 ];
-assert_checkalmostequal ( computed , expected , %eps );
+assert_checkalmostequal ( computed , expected , 10*%eps );
 s1 = optimsimplex_destroy ( s1 );
 
 //
@@ -82,7 +82,7 @@ expected = [
 93.6 -0.2 1.0
 36.2 -1.2 2.0
 ];
-assert_checkalmostequal ( computed , expected , %eps );
+assert_checkalmostequal ( computed , expected , 10*%eps );
 assert_checkequal ( myobj.nb , 3 );
 nbve = optimsimplex_getnbve ( s1 );
 assert_checkequal ( nbve , 3 );
index 4c5c326..a2ca181 100644 (file)
@@ -63,7 +63,7 @@
 //roots(p)
 //
 //
-//Jean-Marc Sac-Epée on Linux PC version Linux distribution Mandrake 7.1 with  KDE as window manager
+//Jean-Marc Sac-Epée on Linux PC version Linux distribution Mandrake 7.1 with  KDE as window manager
 //France  September 27, 2000 at 9:18:17
 // 
 // sort_merge_comparison --
@@ -88,7 +88,7 @@ endfunction
 //   compfun : the comparison function
 //   data : an optionnal data to pass to the comparison function
 // Bruno Pincon
-// "quelques tests de rapidit´e entre diff´erents logiciels matriciels"
+// "quelques tests de rapidité entre différents logiciels matriciels"
 // Modified by Michael Baudin to manage a comparison function
 //
 function [x] = sort_merge ( varargin )
index 95f22e1..4377df6 100644 (file)
@@ -65,7 +65,7 @@
 //roots(p)
 //
 //
-//Jean-Marc Sac-Epée on Linux PC version Linux distribution Mandrake 7.1 with  KDE as window manager
+//Jean-Marc Sac-Epée on Linux PC version Linux distribution Mandrake 7.1 with  KDE as window manager
 //France  September 27, 2000 at 9:18:17
 
 // 
@@ -92,7 +92,7 @@ endfunction
 //   compfun : the comparison function
 //   data : an optionnal data to pass to the comparison function
 // Bruno Pincon
-// "quelques tests de rapidit´e entre diff´erents logiciels matriciels"
+// "quelques tests de rapidité entre différents logiciels matriciels"
 // Modified by Michael Baudin to manage a comparison function
 //
 function [x] = sort_merge ( varargin )
@@ -183,6 +183,3 @@ expected  = [
 ];
 // Precision measured with experiments
 assert_checkalmostequal ( computed , expected , 10^6*%eps );
-
-
-
index cf49dec..e47d095 100644 (file)
@@ -203,7 +203,7 @@ expected = [
 ];
 grand('setsd',0);
 computed = grand(4,6,"def");
-assert_checkalmostequal ( computed , expected, 1.e-7 );
+assert_checkalmostequal ( computed , expected, 1.e-6 );
 //
 // Check integers
 expected = [
@@ -249,14 +249,14 @@ assert_checkequal ( size(S) , [sdsize 1] );
 //
 // Check numbers
 expected = [
-0.0002874    0.9423555    0.0770725    0.0207832    0.4746445    0.1895302  
-0.8538282    0.5493145    0.3200836    0.4775516    0.2245108    0.6637360  
-0.0581523    0.6006782    0.8569004    0.0123565    0.7357421    0.5837571  
-0.5196679    0.2448867    0.2568304    0.4503826    0.9680347    0.5214808  
+    2.874450D-04    9.423555D-01    7.707249D-02    2.078324D-02    4.746445D-01    1.895302D-01  
+    8.538282D-01    5.493145D-01    3.200836D-01    4.775516D-01    2.245108D-01    6.637360D-01  
+    5.815227D-02    6.006782D-01    8.569004D-01    1.235649D-02    7.357421D-01    5.837571D-01  
+    5.196679D-01    2.448867D-01    2.568304D-01    4.503826D-01    9.680347D-01    5.214808D-01  
 ];
 grand('setsd',0,0,0,0);
 computed = grand(4,6,"def");
-assert_checkalmostequal ( computed , expected, 1.e-7 );
+assert_checkalmostequal ( computed , expected, 1.e-6 );
 //
 // Check integers
 expected = [
@@ -309,7 +309,7 @@ expected = [
 ];
 grand('setsd',1,1);
 computed = grand(4,6,"def");
-assert_checkalmostequal ( computed , expected, 1.e-7 );
+assert_checkalmostequal ( computed , expected, 1.e-5 );
 //
 // Check integers
 expected = [
@@ -346,9 +346,9 @@ assert_checkequal ( S , gen );
 warning("off");
 grand('setsd',1,1,1,1);
 
-=> soyez conscient que la synchronisation a pu être perdue
-    entre le le gen virtuel 0 et les autres !
-    utilisez grand("setall", s1, s2, s3, s4) si vous voulez retrouver la synchronisation.warning("on");
+=> be aware that you have may lost synchronization
+    between the virtual gen 0 and the others !
+    use grand("setall", s1, s2, s3, s4) if you want recover it.warning("on");
 S=grand('getsd');
 assert_checkequal ( typeof(S) , "constant" );
 assert_checkequal ( size(S) , [sdsize 1] );
@@ -356,9 +356,9 @@ assert_checkequal ( size(S) , [sdsize 1] );
 warning("off");
 grand('setsd',123456,123456,123456,123456);
 
-=> soyez conscient que la synchronisation a pu être perdue
-    entre le le gen virtuel 0 et les autres !
-    utilisez grand("setall", s1, s2, s3, s4) si vous voulez retrouver la synchronisation.warning("on");
+=> be aware that you have may lost synchronization
+    between the virtual gen 0 and the others !
+    use grand("setall", s1, s2, s3, s4) if you want recover it.warning("on");
 S=grand('getsd');
 assert_checkequal ( typeof(S) , "constant" );
 assert_checkequal ( size(S) , [sdsize 1] );
@@ -373,11 +373,11 @@ expected = [
 warning("off");
 grand('setsd',1,1,1,1);
 
-=> soyez conscient que la synchronisation a pu être perdue
-    entre le le gen virtuel 0 et les autres !
-    utilisez grand("setall", s1, s2, s3, s4) si vous voulez retrouver la synchronisation.warning("on");
+=> be aware that you have may lost synchronization
+    between the virtual gen 0 and the others !
+    use grand("setall", s1, s2, s3, s4) if you want recover it.warning("on");
 computed = grand(4,6,"def");
-assert_checkalmostequal ( computed , expected, 1.e-7 );
+assert_checkalmostequal ( computed , expected, 1.e-6 );
 //
 // Check integers
 expected = [
@@ -389,9 +389,9 @@ expected = [
 warning("off");
 grand('setsd',1,1,1,1);
 
-=> soyez conscient que la synchronisation a pu être perdue
-    entre le le gen virtuel 0 et les autres !
-    utilisez grand("setall", s1, s2, s3, s4) si vous voulez retrouver la synchronisation.warning("on");
+=> be aware that you have may lost synchronization
+    between the virtual gen 0 and the others !
+    use grand("setall", s1, s2, s3, s4) if you want recover it.warning("on");
 computed = grand(4,6,"lgi");
 assert_checkequal ( computed , expected );
 //
@@ -435,7 +435,7 @@ expected = [
 ];
 grand('setsd',1,1);
 computed = grand(4,6,"def");
-assert_checkalmostequal ( computed , expected, 1.e-7 );
+assert_checkalmostequal ( computed , expected, 1.e-6 );
 //
 // Check integers
 expected = [
@@ -485,7 +485,7 @@ expected = [
 ];
 grand('setsd',1);
 computed = grand(4,6,"def");
-assert_checkalmostequal ( computed , expected, 1.e-7 );
+assert_checkalmostequal ( computed , expected, 1.e-5 );
 //
 // Check integers
 expected = [
index fa6da9a..dbb6b2c 100644 (file)
@@ -226,7 +226,7 @@ expected = [
 ];
 grand('setsd',0);
 computed = grand(4,6,"def");
-assert_checkalmostequal ( computed , expected, 1.e-7 );
+assert_checkalmostequal ( computed , expected, 1.e-6 );
 //
 // Check integers
 expected = [
@@ -273,14 +273,14 @@ assert_checkequal ( size(S) , [sdsize 1] );
 //
 // Check numbers
 expected = [
-0.0002874    0.9423555    0.0770725    0.0207832    0.4746445    0.1895302  
-0.8538282    0.5493145    0.3200836    0.4775516    0.2245108    0.6637360  
-0.0581523    0.6006782    0.8569004    0.0123565    0.7357421    0.5837571  
-0.5196679    0.2448867    0.2568304    0.4503826    0.9680347    0.5214808  
+    2.874450D-04    9.423555D-01    7.707249D-02    2.078324D-02    4.746445D-01    1.895302D-01  
+    8.538282D-01    5.493145D-01    3.200836D-01    4.775516D-01    2.245108D-01    6.637360D-01  
+    5.815227D-02    6.006782D-01    8.569004D-01    1.235649D-02    7.357421D-01    5.837571D-01  
+    5.196679D-01    2.448867D-01    2.568304D-01    4.503826D-01    9.680347D-01    5.214808D-01  
 ];
 grand('setsd',0,0,0,0);
 computed = grand(4,6,"def");
-assert_checkalmostequal ( computed , expected, 1.e-7 );
+assert_checkalmostequal ( computed , expected, 1.e-6 );
 //
 // Check integers
 expected = [
@@ -333,7 +333,7 @@ expected = [
 ];
 grand('setsd',1,1);
 computed = grand(4,6,"def");
-assert_checkalmostequal ( computed , expected, 1.e-7 );
+assert_checkalmostequal ( computed , expected, 1.e-5 );
 //
 // Check integers
 expected = [
@@ -392,7 +392,7 @@ warning("off");
 grand('setsd',1,1,1,1);
 warning("on");
 computed = grand(4,6,"def");
-assert_checkalmostequal ( computed , expected, 1.e-7 );
+assert_checkalmostequal ( computed , expected, 1.e-6 );
 //
 // Check integers
 expected = [
@@ -447,7 +447,7 @@ expected = [
 ];
 grand('setsd',1,1);
 computed = grand(4,6,"def");
-assert_checkalmostequal ( computed , expected, 1.e-7 );
+assert_checkalmostequal ( computed , expected, 1.e-6 );
 //
 // Check integers
 expected = [
@@ -497,7 +497,7 @@ expected = [
 ];
 grand('setsd',1);
 computed = grand(4,6,"def");
-assert_checkalmostequal ( computed , expected, 1.e-7 );
+assert_checkalmostequal ( computed , expected, 1.e-5 );
 //
 // Check integers
 expected = [
index 22859cf..71f3750 100644 (file)
@@ -349,7 +349,7 @@ function p = mycdfexp(X,A)
   p = 1 - exp(-(1/A)*X);
 endfunction
 A = 20;
-checkMeanVariance1arg ( 400 , 800 , 'exp' , A , A , A^2 , rtol );
+checkMeanVariance1arg ( 400 , 800 , 'exp' , A , A , A^2 , 2*rtol );
 //
 for A = linspace(0.1,50,10)
   checkLaw1arg ( "exp" , mycdfexp , N , NC , A , 2*rtol );
@@ -414,7 +414,7 @@ checkMeanVariance2arg ( 400 , 800 , 'bin' , A , B , A*B , A*B*(1-B) , rtol );
 //
 for A = floor(linspace(10,50,4))
 for B = linspace(0.1,0.9,4)
-  checkPieceLaw2arg ( 'bin' , mycdfbin , N , NC , A , B , rtol );
+  checkPieceLaw2arg ( 'bin' , mycdfbin , N , NC , A , B , 2*rtol );
 end
 end
 /////////////////////////////////////////////////////////////
@@ -528,7 +528,7 @@ B = [4,2,3;2,6,4;3,4,5];
   R=grand(n,"mn",A,B);
   assert_checkequal ( size(R) , [3,n] );
   assert_checkequal ( typeof(R) , "constant" );
-  assert_checkalmostequal ( mean(R,"c") , A , rtol );
+  assert_checkalmostequal ( mean(R,"c") , A , 2*rtol );
   assert_checkalmostequal ( variance(R,"c") , [4;6;5] , rtol );
 //
 // No CDF for this function => no histogram test. 
index fae6200..58f0583 100644 (file)
@@ -382,7 +382,7 @@ function p = mycdfexp(X,A)
 endfunction
 
 A = 20;
-checkMeanVariance1arg ( 400 , 800 , 'exp' , A , A , A^2 , rtol );
+checkMeanVariance1arg ( 400 , 800 , 'exp' , A , A , A^2 , 2*rtol );
 //
 for A = linspace(0.1,50,10)
   checkLaw1arg ( "exp" , mycdfexp , N , NC , A , 2*rtol );
@@ -459,7 +459,7 @@ checkMeanVariance2arg ( 400 , 800 , 'bin' , A , B , A*B , A*B*(1-B) , rtol );
 //
 for A = floor(linspace(10,50,4))
 for B = linspace(0.1,0.9,4)
-  checkPieceLaw2arg ( 'bin' , mycdfbin , N , NC , A , B , rtol );
+  checkPieceLaw2arg ( 'bin' , mycdfbin , N , NC , A , B , 2*rtol );
 end
 end
 
@@ -596,7 +596,7 @@ B = [4,2,3;2,6,4;3,4,5];
   R=grand(n,"mn",A,B);
   assert_checkequal ( size(R) , [3,n] );
   assert_checkequal ( typeof(R) , "constant" );
-  assert_checkalmostequal ( mean(R,"c") , A , rtol );
+  assert_checkalmostequal ( mean(R,"c") , A , 2*rtol );
   assert_checkalmostequal ( variance(R,"c") , [4;6;5] , rtol );
 //
 // No CDF for this function => no histogram test.