octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

debug output of eigs?


From: David Bateman
Subject: debug output of eigs?
Date: Wed, 18 May 2005 14:20:35 +0200
User-agent: Mozilla Thunderbird 0.8 (X11/20040923)

Dear All,

In implementing eigs and trying to make it matlab compatible I've run across an issue with the debugging output when opts.disp > 0 (default value of 1 in matlab). The problem is that ARPACK returns to the calling function several times to ask for operations like A*x to be done, but a single iteration as defined by ARPACK is when its internal representation of the Ritz values are updated, and this counter is not returned and several A*x calls are needed for a single iteration. However, it is this internal counter that matlab uses for display such as

Iteration 27: a few Ritz values of the 20-by-20 matrix:
   5.9659
   5.9848
   5.9848
   5.9962
   5.9962

and so matlab certainly has a modified version of ARPACK that they use for this purpose. We have several choices.

1) Include ARPACK into the octave source tree and make the necessary modifications to return the iteration counter
  in the same manner as matlab.
2) Print out each time we come back from ARPACK. This means that the iteration count is meaningless and that the Ritz values will not change at each nominal iteration. 3) Try to fool ARPACK into giving information about the iteration counter by setting the output value workl[ipntr(5)-1] to a NaN, and then test when it isn't a NaN for printing. There are several downsides to this. If ARPACK terminates on an iteration, the returned eigenvalues will contain this NaN, so the termination needs to check for the NaN, and without in depth understanding of the ARPACK code there is no guarantee that this value is not in fact used in some cases and so there is a some potential of adding a difficult to find bug to eigs 4) Store a local copy of the Ritz values and consider that there is an iteration when these values have changed. This is rather messy, require an overhead in terms of testing for equality of the Ritz values and storing them, but it will work. 5) Ignore the whole mess of the matlab debugging arguments and just don't display these messages

What is the preferred solution, of people on this list? In any case apart of this and a couple of issues with the general eigenvalue equation (when B is set) I now have most of eigs working...

Cheers
David

--
David Bateman                                address@hidden
Motorola Labs - Paris +33 1 69 35 48 04 (Ph) Parc Les Algorithmes, Commune de St Aubin +33 1 69 35 77 01 (Fax) 91193 Gif-Sur-Yvette FRANCE

The information contained in this communication has been classified as: [x] General Business Information [ ] Motorola Internal Use Only [ ] Motorola Confidential Proprietary



reply via email to

[Prev in Thread] Current Thread [Next in Thread]