Re: [eigen] OneNorm and condition number estimation |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen 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
http://eigen.tuxfamily.org/bz/ 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.
Cheers,
Jitse
PS: For PARDISO, we already have the PARDISOSupport module, but I'm sure
that feedback and patches are welcome.