Re: [eigen] OneNorm and condition number estimation

[ Thread Index | Date Index | More Archives ]

On Fri, 13 Jan 2012, R Kannan wrote:

I've just finished implementing an Eigen one norm estimator based on Higham
and Tisseur's algorithm[1]. (attached code below.)
I'm happy to submit a patch -- does anyone have any views on where it can
go? The code makes liberal use of lambdas so it's unsuitable for C++98.

Gael Guennebaud knows the sparse modules best, but in the mean time I can comment. Let's start with some general comments to check that I understand what you're doing.

Computing the 1-norm of a matrix is easy if you can access its coefficients, so I assume that for an Eigen::SparseMatrix the naive method will be at least similar in speed than your (i.e., Higham and Tisseur's) method. But the method is useful if you can evaluate matrix-vector products and matrix-transpose-vector products but cannot easily access coefficients. One important instance is when you're estimating the 1-norm of the inverse, and hence the 1-condition number, provided you can solve systems quickly.

At the moment, you can put the code in Eigen's issue tracker at so that other people can access it. That is the least amount of work for you. However, it will gain more visibility if it's incorporated in a module that is distributed with Eigen (initially, it will be 'unsupported'). In my opinion the functionality is important enough, but I'd like to see some improvements to the implementation: get rid of the lambdas and other C++0x stuff (unless there is a good argument to keep them, of course); add some documentation; add a unit test.

But Gael's opinion carries more weight.


PS: For PARDISO, we already have the PARDISOSupport module, but I'm sure that feedback and patches are welcome.

Mail converted by MHonArc 2.6.19+