Re: [eigen] skipXxx / computeXxx parameters in Eigenvalues module

[ Thread Index | Date Index | More Archives ]

Note that the Tridiagonalization and Hessenberg classes are special
since the Q can rather be returned as a householder sequence,
incurring no extra cost at the time of the decomposition. These
classes should be rewritten as trivial adaptations of, respectively,
UpperBidiagonalization and HouseholderQR.


2010/5/30 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>:
> Hi Jitse,
> Thanks for taking care of that and asking!
> I would like us to align everywhere on runtime computeXxx parameters,
> not skipXxx parameters. In other words, 'true' means do compute. This
> is so we can avoid a double negation ("do not not compute"). Do you
> agree?
> Then a separate question is what the default should be. Initially I
> thought default to true for ease of use. But actually, this makes it
> easy to write slow code, even unbearingly slow (for 10000x10 matrices,
> skipping the U computation is crucial...). So perhaps default to false
> and make sure that the corresponding assertion messages make it very
> clear what's going on ("You tried accessing this but you didn't ask
> for it to be computed in this decomposition").
> Benoit
> 2010/5/30 Jitse Niesen <jitse@xxxxxxxxxxxxxxxxx>:
>> Hello,
>> The SelfAdjointEigenSolver class allows for the computation of only the
>> eigenvalues and not the eigenvectors. This allows a non-trivial time saving.
>> My plan is to extend this functionality to the other eigensolvers (this is
>> not much work).
>> However, there is an API issue that I'd like some opinions about. The
>> compute() function in the SelfAdjointEigenSolver class has a bool argument
>> computeEigenvectors; the eigenvectors are computed iff it is true. The
>> compute() function in the Tridiagonalization class has a bool argument
>> extractQ; the matrix Q (which is analogous to the eigenvectors) is computed
>> iff it is true. However, the compute() function in the ComplexSchur class
>> has a bool argument skipU; the matrix U is computed iff it is *false*.
>> I think this inconsistency is potentially confusing for the users. On the
>> other hand, changing it may break existing programs. So what to do?
>> Cheers,
>> Jitse

Mail converted by MHonArc 2.6.19+