--- src/DLD-FUNCTIONS/inv.cc~ Fri Dec 20 23:43:55 2002 +++ src/DLD-FUNCTIONS/inv.cc Fri Oct 17 10:14:45 2003 @@ -76,16 +76,21 @@ int info; double rcond = 0.0; - Matrix result = m.inverse (info, rcond, 1); + if (nargout > 1) + { + Matrix result = m.inverse (info, rcond, 1); + retval(0) = result; + retval(1) = rcond; + } + else + { + Matrix result = m.inverse (info, rcond, 1, 0); + retval(0) = result; - if (nargout > 1) - retval(1) = rcond; - - retval(0) = result; - - if (nargout < 2 && info == -1) - warning ("inverse: matrix singular to machine precision,\ + if (info == -1) + warning ("inverse: matrix singular to machine precision,\ rcond = %g", rcond); + } } } else if (arg.is_complex_type ()) @@ -97,16 +102,21 @@ int info; double rcond = 0.0; - ComplexMatrix result = m.inverse (info, rcond, 1); - - if (nargout > 1) - retval(1) = rcond; - - retval(0) = result; + if (nargout > 1) + { + ComplexMatrix result = m.inverse (info, rcond, 1); + retval(0) = result; + retval(1) = rcond; + } + else + { + ComplexMatrix result = m.inverse (info, rcond, 1, 0); + retval(0) = result; - if (nargout < 2 && info == -1) - warning ("inverse: matrix singular to machine precision,\ + if (info == -1) + warning ("inverse: matrix singular to machine precision,\ rcond = %g", rcond); + } } } else