1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) ????-2008 - INRIA - Serge Steer
5 // This file is distributed under the same license as the Scilab package.
6 // =============================================================================
10 // Returns 1 if the two real matrices computed and expected are close,
11 // i.e. if the relative distance between computed and expected is lesser than epsilon.
13 // computed, expected : the two matrices to compare
14 // epsilon : a small number
16 function flag = assert_close ( computed, expected, epsilon )
18 shift = norm(computed-expected);
20 shift = norm(computed-expected)/norm(expected);
22 if shift < epsilon then
27 if flag <> 1 then pause,end
36 assert_close ( sld.dt , 0.1 , %eps );
38 expected = exp(sl.A*0.1);
39 assert_close ( computed , expected , %eps );
41 expected = sl.A\(sld.A-eye())*sl.B;
42 assert_close ( computed , expected , %eps );
45 a=[0.9,0,0.6,-1.4,-4.2;
48 -3.7,-0.5,2.4,-0.6,2.7;
62 sl=syslin('c',a,b,c,d);
64 assert_close ( sld.dt , 0.1 , %eps );
66 expected = expm(sl.A*0.1);
67 assert_close ( computed , expected , %eps );
69 expected = sl.A\(sld.A-eye())*sl.B;
70 assert_close ( computed , expected , 1.e3 * %eps );