From maintainers-request at octave dot org Mon Dec 13 03:36:21 2004 Subject: Re: permutations of matrix to triangular form? From: David Bateman To: adler at site dot uottawa dot ca Cc: maintainers at octave dot org Date: Mon, 13 Dec 2004 10:37:29 +0100 > > > > E = set(E, 'solver', 'cholesky'); > > V= E\I; > > This is basically what I was suggesting. Yes, but my question was, isn't V = mldivide (E, I, 'cholesky') simpler, as you can't seperate the set of the solver type from the solve itself.... > While I know that this isn't the point of what you're currently > thinking of, it seems to me that the ability to add this kind > of information to matrices is powerful. > > For example, one thing I would love to be able to do, is have a matrix > object which would allow arbitrary pieces of cached computations to be > tacked onto it. My current code tends to keep this information in > global variables - not the cleanest solution. It seems to me that a better way of attacking this would be to have classes and define your type as a sparse, with a string to select the solver type. You can then overload the operators \ and / with some selection code in it. With that capability, you'd have what you want.. > I realize I haven't carefully looked at your new sparse code yet. > I hope to do that this week. I'm not going to touch this code in the next few weeks as I'm on vacation. So it won't change in the next few weeks... However, I checked-in last night most of the polymorphic solver code, including diagonal, permuted diagonal, upper/lower triangular and banded solvers. Its missing permuted upper/lower triangular, and cholesky solvers still, as well as the QR solvers that were always missing. I haven't benchmarked the code yet, but I've included test cases that fully exercises this code. This should be capable of replacing Paul's tri-diagonal and the SymBand stuff in octave-forge in the long run. In any case, it would be interesting to have some benchmarking of the special casing of the solver to see how it compares... The spparms("bandden") option can be used to change between the banded and the UMFPACK solvers if you want to look at this.. Regards David -- David Bateman David dot Bateman at motorola dot com Motorola CRM +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