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

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

*To*: eigen@xxxxxxxxxxxxxxxxxxx*Subject*: Re: [eigen] skipXxx / computeXxx parameters in Eigenvalues module*From*: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>*Date*: Sun, 30 May 2010 11:49:55 -0400*Dkim-signature*: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type; bh=JmZeOfsz2c8jTjOFM/yAiZH3fggJYbRuKHI/pAu6f1o=; b=kKX7iE6RrWLwPb400oepePSGiG0wZYWXYaO2ZUZgpHIQBX9zcR2gbfgQNqm0+K7k52 rtMChVzL+r4Z8VwK2wsrUNEMdhDYRcb/l1Jy8Rgcfiq9WyKwbE8h7MfXNOWU6OjD91xZ fs8RUeT0rghjrEgwqFcyC7Kk98FIyt9/PLgdo=*Domainkey-signature*: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=ntaJJAwYEssTXChWali6n4l5nDiRada0UB6N58xr2Gkv9iLSSWEnNadm26UXfv5jty 57c2NazaIdXlallX/2mkDbKorTxRKM1+Fl47WnfZ6d6pv9dRvXSWqrSd69u7i7aHbTej ruzco7ZAVy1UYtGSojmXWzVAxbTkL9+6WEgi8=

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. Benoit 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 >> >> >> >

**References**:**[eigen] skipXxx / computeXxx parameters in Eigenvalues module***From:*Jitse Niesen

**Re: [eigen] skipXxx / computeXxx parameters in Eigenvalues module***From:*Benoit Jacob

**Messages sorted by:**[ date | thread ]- Prev by Date:
**Re: [eigen] skipXxx / computeXxx parameters in Eigenvalues module** - Next by Date:
**Re: [eigen] skipXxx / computeXxx parameters in Eigenvalues module** - Previous by thread:
**Re: [eigen] skipXxx / computeXxx parameters in Eigenvalues module** - Next by thread:
**Re: [eigen] skipXxx / computeXxx parameters in Eigenvalues module**

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