comparison scripts/control/base/tzero.m @ 7795:df9519e9990c

Handle single precision eps values
author David Bateman <dbateman@free.fr>
date Mon, 12 May 2008 22:57:11 +0200
parents 4a375de63f66
children
comparison
equal deleted inserted replaced
7794:2b458dfe31ae 7795:df9519e9990c
96 ## problem balancing method (Hodel and Tiller, Linear Alg. Appl., 1992) 96 ## problem balancing method (Hodel and Tiller, Linear Alg. Appl., 1992)
97 97
98 ## balance coefficients 98 ## balance coefficients
99 Asys = __zgpbal__ (Asys); 99 Asys = __zgpbal__ (Asys);
100 [A, B, C, D] = sys2ss (Asys); 100 [A, B, C, D] = sys2ss (Asys);
101 meps = 2*eps*norm ([A, B; C, D], "fro"); 101 if (isa ([A, B; C, D], "single"))
102 meps = 2*eps("single")*norm ([A, B; C, D], "fro");
103 else
104 meps = 2*eps*norm ([A, B; C, D], "fro");
105 endif
102 ## ENVD algorithm 106 ## ENVD algorithm
103 Asys = zgreduce (Asys, meps); 107 Asys = zgreduce (Asys, meps);
104 [A, B, C, D] = sys2ss (Asys); 108 [A, B, C, D] = sys2ss (Asys);
105 if (! isempty (A)) 109 if (! isempty (A))
106 ## repeat with dual system 110 ## repeat with dual system