# HG changeset patch # User Jaroslav Hajek # Date 1259220487 -3600 # Node ID 72d6e0de76c7daae60d619555848efd467f202a9 # Parent 87595d71400529ce0f39881563c5ad5d445e6437 fix qp, condest and krylov diff -r 87595d714005 -r 72d6e0de76c7 scripts/ChangeLog --- a/scripts/ChangeLog Thu Nov 26 07:22:02 2009 +0100 +++ b/scripts/ChangeLog Thu Nov 26 08:28:07 2009 +0100 @@ -1,3 +1,9 @@ +2009-11-26 Jaroslav Hajek + + * optimization/qp.m: Fix matrix tests. + * optimization/condest.m: Ditto. + * optimization/krylov.m: Ditto. + 2009-11-26 Jaroslav Hajek * sparse/normest.m: Move to linear-algebra. diff -r 87595d714005 -r 72d6e0de76c7 scripts/linear-algebra/condest.m --- a/scripts/linear-algebra/condest.m Thu Nov 26 07:22:02 2009 +0100 +++ b/scripts/linear-algebra/condest.m Thu Nov 26 08:28:07 2009 +0100 @@ -117,10 +117,10 @@ if (ismatrix (varargin{1})) A = varargin{1}; - n = issquare (A); - if (! n) + if (! issquare (A)) error ("condest: matrix must be square"); endif + n = rows (A); have_A = true; if (nargin > 1) diff -r 87595d714005 -r 72d6e0de76c7 scripts/linear-algebra/krylov.m --- a/scripts/linear-algebra/krylov.m Thu Nov 26 07:22:02 2009 +0100 +++ b/scripts/linear-algebra/krylov.m Thu Nov 26 08:28:07 2009 +0100 @@ -81,10 +81,10 @@ eps1 = defeps; endif - na = issquare (A); - if (! na) - error ("A(%d x %d) must be square", rows (A), columns (A)); + if (! issquare (A) || isempty (A)) + error ("A(%d x %d) must be non-empty square matrix", rows (A), columns (A)); endif + na = rows (A); [m, kb] = size (V); if (m != na) diff -r 87595d714005 -r 72d6e0de76c7 scripts/optimization/qp.m --- a/scripts/optimization/qp.m Thu Nov 26 07:22:02 2009 +0100 +++ b/scripts/optimization/qp.m Thu Nov 26 08:28:07 2009 +0100 @@ -85,16 +85,13 @@ if (nargin == 5 || nargin == 7 || nargin == 10) ## Checking the quadratic penalty - n = issquare (H); - if (n == 0) + if (! issquare (H)) error ("qp: quadratic penalty matrix not square"); - endif - - n1 = issymmetric (H); - if (n1 == 0) - ## warning ("qp: quadratic penalty matrix not symmetric"); + elseif (! ishermitian (H)) + ## warning ("qp: quadratic penalty matrix not hermitian"); H = (H + H')/2; endif + n = rows (H); ## Checking the initial guess (if empty it is resized to the ## right dimension and filled with 0)