Mercurial > hg > octave-lyh
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 |