Re: [eigen] Polynomial solver, eigenvalues of companion matrix and balancing

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


Hi,

thanks you for the information. Someone already contributed a block
Hessenberg a while ago, but it had some problems with complexes that
we never took the time to address. I'll look at your code to see what
can be merged.


gael

On Fri, Jul 20, 2012 at 10:03 AM, Victor Liu <victor.liu@xxxxxxxxx> wrote:
> Hi, not to hijack the thread, but I think this is related (I haven't been on
> the list long enough to see the original thread).
>
> I would love to use Eigen except for the fact that the complex eigensolver
> is much slower compared to Lapack, which does both blocking in the
> Hessenberg reduction, as well as uses a better shift strategy and aggressive
> early deflation in the QR iteration. Now, I've ported the entire dependency
> chain of Lapack's zgeev to C++, if there is any interest in including it
> into Eigen (the original motivation was to deal with Lapack errata 0061).
> The source tree is at:
> https://github.com/victorliu/S4/tree/master/src/RNP
> The core QR routines are in Eigensystems.cpp, while the auxiliary routines
> like Hessenberg reduction and balancing is in TLASupport.h. I considered
> contributing to the Eigen code base but it appears to be quite complicated
> and I'm not sure I have the time for it.
>
> -Victor
>
>
> On 07/20/2012 12:24 AM, Markus Moll wrote:
>>
>> Hi
>>
>> Sorry for reviving an "ancient" thread, but:
>> I recently had to extract roots of a fourth order polynomial. Using Eigen
>> to
>> find the eigenvalues of the companion matrix, I found that some roots were
>> horribly bad (compared to matlab, which gave much more reliable results).
>> I
>> soon figured that the difference is that Matlab balances the matrices
>> beforehand. In this thread, Manuel said he had written a balancer, but I
>> cannot find it among the unsupported modules, nor can I find his bitbucket
>> account any more.
>>
>> Because I wasn't aware of this previous effort, I had already translated
>> LAPACK's dgebal (the diagonal scaling part only) to C++. As I feel that
>> balancing should be supported in Eigen (via another EigenSolver flag?), I
>> wonder if this could be included. The original LAPACK dgebal.f is
>> published
>> under the 3-clause BSD license, so the licenses should be compatible
>> according
>> to my understanding.
>>
>> Regards
>> Markus
>>
>>
>>
>>
>>
>
>
>



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/