From: Eric Durant Subject: Re: Another LAPACK library bug Date: 07 Apr 2000 00:00:00 GMT Message-ID: <38EDF420.92781074@engin.umich.edu> Content-Transfer-Encoding: 8bit References: <8cjat5$lu0$1@slb2.atl.mindspring.net> <8ckogr$pvt$1@news.mathworks.com> X-Accept-Language: en,pdf Content-Type: text/plain; charset=iso-8859-1 X-Complaints-To: usenet@eecs.umich.edu X-Trace: news.eecs.umich.edu 955118696 32285 141.213.6.60 (7 Apr 2000 14:44:56 GMT) Organization: EECS Dept. Univ. of Michigan Mime-Version: 1.0 Newsgroups: comp.soft-sys.matlab > Mark Erickson wrote in message > <8cjat5$lu0$1@slb2.atl.mindspring.net>... >>This is another LAPACK numerics library bug that I found >>today. I execute the following command under Windows NT4.0 >>running Matlab 5.3.1 (R11.1): >> >> eig([inf,1;0,0]) [...] >>The new LAPACK library (downloaded 4/6/2000) just plain >>locks up. No warning, no error, nothing. I have to kill >>Matlab with the Windows NT Task Manager. >> >>This is definitely a pathological case, but it sure would be >>nice if the Mathworks QA folks fixed it.... Penny Anderson wrote: >In the next release of MATLAB, we detect Inf and NaN input to the >iterative algorithms like eig and svd and error out. In the >meantime ... if it hurts - don't do it. > >This is really a case of what to do when you have "garbage in". > >In R11 we chose "garbage out". Note that the result returned does >not satisfy A*V == V*D. > >» A = [Inf 1; 0 0]; >» [V,D] = eig(A); >» A*V [...] > >In R12, we have chose to error out instead, mainly because LAPACK >does not handle Inf and NaN input as well as the old LINPACK-based >code did. It's not merely garbage out, though. When I try your example (or equivalently, Mark's), Matlab hangs in the call to eig(), taking all the CPU time it can get; it needs to be shut down by the task manager or equivalent (Windows NT 4.0, SP5). I'm glad to read that R12 will provide an error message, but this hanging might point to a more serious problem than argument checking -- perhaps some termination criterion is being missed within eig(). -- Eric Durant http://www.edurant.com/