Re: [eigen] Progress and plans

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


2010/2/22 Jitse Niesen <jitse@xxxxxxxxxxxxxxxxx>:
> On Thu, 18 Feb 2010, Benoit Jacob wrote:
>
>>> I think the module is usable at the moment. However, there are some
>>> problems
>>> if the matrices have clustered eigenvalues (this is the most difficult
>>> case). One issue is that ComplexSchur often reaches the maximum number of
>>> iterations. I don't know whether that's an inherent weakness in the
>>> algoritm
>>> or only in the implementation - it may be as simple as increasing the
>>> maximum number of iterations.
>>
>> It'd be interesting to know if increasing the number of iterations helps..
>
> It helps but not a lot. The algorithm starts fine but gets stuck before it
> reaches the termination condition. It seems that either the condition is too
> strict, or there is an instability in some part of the computation. I'll
> look further into it.

ok. there are many examples of iterative algorithms where the last bit
of precision is hard to get. for example in jacobisvd, for some
matrices, it is, which is why i currently terminate when the relative
error is < 2*epsilon.

>
>
>>> There seems to be another issue in matrix_function_3, which I haven't
>>> investigated yet.
>
> I solved this. The mistake was not in the computation of the matrix
> function, but in the computation of the supposedly exact value I compared
> the result with. :-/
>
>
>>  matrix.exp()
>>
>> That's certainly the most elegant possible syntax!
>
> OK, I can agree with that. The only worry is that array.exp() means
> something else: apply the exponential function entry-wise. So there is a
> source of confusion. On the other hand, array * array and matrix * matrix
> already have different meanings.

Exactly. That is exactly the point of having Array vs. Matrix classes.
So, that a function has a different meaning on either side, is
perfectly OK.

>
> I will change the code to the matrix.exp() syntax soon if nobody argues
> against it.
>
>
>>> * related, what needs to be done to get the module out of unstable/ ?
>>
>> You're doing pretty much exactly what you have to :)
>> 1) say that you want it out of unstable/ ---> check
>> 2) make sure the API is ready for prime time ---> in progress
>> 3) tests, documentation ----> check
>> 4) commit to maintaining that stuff in the future ? ;)
>
> Ad 4) Of course. Otherwise it's not worth writing in the first place.

:)

Benoit

>
>
> Jitse
>
>
>



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