From octave-maintainers-request at bevo dot che dot wisc dot edu Fri Jun 11 08:09:58 1999 Subject: expm fix (2nd ed) From: "A. Scottedward Hodel" To: octave-maintainers at bevo dot che dot wisc dot edu Date: Fri, 11 Jun 1999 08:09:00 -0500 Due to feedback from other maintainers, I rewrote the expm code in liboctave/dMatrix.cc and liboctave/CMatrix.cc to directly apply inverse scaling and permutations in O(n^2) operations instead of through a matrix multiply. (The total cost of a matrix exponential remains O(n^3).) Updated code (based on octave-2.1.14) and test m-files are at directory ftp://ftp.eng.auburn.edu/pub/hodel/octave-expmpatch The code does not make use of routine dgebak, as this would require [dgebak operations with side = 'R'] retval = retval.transpose(); [dgebak operations sith side = 'L'] retval = retval.transpose(); which is at best comparable in efficiency with what's written. Things remaining to do with expm: the algorithm gives the user no control over the preconditioning steps. If a user wishes to turn off AEPBALANCE operations (due to, e.g., noisy data corrupting zero entries), it is not possible in the current implementation. I've put that on my to do list, but may not get to it for a few weeks. A S Hodel Assoc. Prof. Dept Elect Eng, Auburn Univ,AL 36849-5201 On leave at NASA Marshall Space Flight Center (256) 544-1426 Address until 15 Mar 2000:Mail Code TD-55, MSFC, Alabama, 35812 http://www.eng.auburn.edu/~scotte