Mercurial > octave
diff src/DLD-FUNCTIONS/matrix_type.cc @ 5681:233d98d95659
[project @ 2006-03-16 17:48:55 by dbateman]
author | dbateman |
---|---|
date | Thu, 16 Mar 2006 17:48:56 +0000 |
parents | 7171d19706df |
children | 067948dc39bf |
line wrap: on
line diff
--- a/src/DLD-FUNCTIONS/matrix_type.cc Thu Mar 16 17:36:52 2006 +0000 +++ b/src/DLD-FUNCTIONS/matrix_type.cc Thu Mar 16 17:48:56 2006 +0000 @@ -118,8 +118,13 @@ if (mattyp.is_unknown ()) { - mattyp = SparseType (args(0).sparse_complex_matrix_value ()); - ((octave_sparse_complex_matrix &)rep).sparse_type (mattyp); + SparseComplexMatrix m = + args(0).sparse_complex_matrix_value (); + if (!error_state) + { + mattyp = SparseType (m); + ((octave_sparse_complex_matrix &)rep).sparse_type (mattyp); + } } } else @@ -128,8 +133,12 @@ if (mattyp.is_unknown ()) { - mattyp = SparseType (args(0).sparse_matrix_value ()); - ((octave_sparse_matrix &)rep).sparse_type (mattyp); + SparseMatrix m = args(0).sparse_matrix_value (); + if (!error_state) + { + mattyp = SparseType (m); + ((octave_sparse_matrix &)rep).sparse_type (mattyp); + } } } @@ -291,6 +300,11 @@ } /* + +## XXX FIXME XXX +## Disable tests for lower under-determined and upper over-determined +## matrices and this detection is disabled in SparseType due to issues +## of non minimum norm solution being found. %!assert(matrix_type(speye(10,10)),"Diagonal"); %!assert(matrix_type(speye(10,10)([2:10,1],:)),"Permuted Diagonal"); @@ -320,12 +334,12 @@ %!assert(matrix_type(speye(10,11)([2:10,1],:)),"Permuted Diagonal"); %!assert(matrix_type(speye(11,10)),"Diagonal"); %!assert(matrix_type(speye(11,10)([2:11,1],:)),"Permuted Diagonal"); -%!assert(matrix_type([[speye(10,10);sparse(1,10)],[[1,1];sparse(9,2);[1,1]]]),"Upper"); -%!assert(matrix_type([[speye(10,10);sparse(1,10)],[[1,1];sparse(9,2);[1,1]]](:,[2,1,3:12])),"Permuted Upper"); +%#!assert(matrix_type([[speye(10,10);sparse(1,10)],[[1,1];sparse(9,2);[1,1]]]),"Upper"); +%#!assert(matrix_type([[speye(10,10);sparse(1,10)],[[1,1];sparse(9,2);[1,1]]](:,[2,1,3:12])),"Permuted Upper"); %!assert(matrix_type([speye(11,9),[1;sparse(8,1);1;0]]),"Upper"); %!assert(matrix_type([speye(11,9),[1;sparse(8,1);1;0]](:,[2,1,3:10])),"Permuted Upper"); -%!assert(matrix_type([speye(10,10),sparse(10,1);[1;1],sparse(2,9),[1;1]]),"Lower"); -%!assert(matrix_type([speye(10,10),sparse(10,1);[1;1],sparse(2,9),[1;1]]([2,1,3:12],:)),"Permuted Lower"); +%#!assert(matrix_type([speye(10,10),sparse(10,1);[1;1],sparse(2,9),[1;1]]),"Lower"); +%#!assert(matrix_type([speye(10,10),sparse(10,1);[1;1],sparse(2,9),[1;1]]([2,1,3:12],:)),"Permuted Lower"); %!assert(matrix_type([speye(9,11);[1,sparse(1,8),1,0]]),"Lower"); %!assert(matrix_type([speye(9,11);[1,sparse(1,8),1,0]]([2,1,3:10],:)),"Permuted Lower"); %!assert(matrix_type(spdiags(randn(10,4),[-2:1],10,9)),"Rectangular") @@ -358,12 +372,12 @@ %!assert(matrix_type(1i*speye(10,11)([2:10,1],:)),"Permuted Diagonal"); %!assert(matrix_type(1i*speye(11,10)),"Diagonal"); %!assert(matrix_type(1i*speye(11,10)([2:11,1],:)),"Permuted Diagonal"); -%!assert(matrix_type([[speye(10,10);sparse(1,10)],[[1i,1i];sparse(9,2);[1i,1i]]]),"Upper"); -%!assert(matrix_type([[speye(10,10);sparse(1,10)],[[1i,1i];sparse(9,2);[1i,1i]]](:,[2,1,3:12])),"Permuted Upper"); +%#!assert(matrix_type([[speye(10,10);sparse(1,10)],[[1i,1i];sparse(9,2);[1i,1i]]]),"Upper"); +%#!assert(matrix_type([[speye(10,10);sparse(1,10)],[[1i,1i];sparse(9,2);[1i,1i]]](:,[2,1,3:12])),"Permuted Upper"); %!assert(matrix_type([speye(11,9),[1i;sparse(8,1);1i;0]]),"Upper"); %!assert(matrix_type([speye(11,9),[1i;sparse(8,1);1i;0]](:,[2,1,3:10])),"Permuted Upper"); -%!assert(matrix_type([speye(10,10),sparse(10,1);[1i;1i],sparse(2,9),[1i;1i]]),"Lower"); -%!assert(matrix_type([speye(10,10),sparse(10,1);[1i;1i],sparse(2,9),[1i;1i]]([2,1,3:12],:)),"Permuted Lower"); +%#!assert(matrix_type([speye(10,10),sparse(10,1);[1i;1i],sparse(2,9),[1i;1i]]),"Lower"); +%#!assert(matrix_type([speye(10,10),sparse(10,1);[1i;1i],sparse(2,9),[1i;1i]]([2,1,3:12],:)),"Permuted Lower"); %!assert(matrix_type([speye(9,11);[1i,sparse(1,8),1i,0]]),"Lower"); %!assert(matrix_type([speye(9,11);[1i,sparse(1,8),1i,0]]([2,1,3:10],:)),"Permuted Lower"); %!assert(matrix_type(1i*spdiags(randn(10,4),[-2:1],10,9)),"Rectangular")