Re: [eigen] Specialized QR |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Specialized QR
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Sun, 17 May 2009 04:40:49 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=gNq1Qq9i8VQUV2V3pcVaI6sKJcmsrT1YlDKLdvKDLCM=; b=R1X4IZDFsNr6EDGZsW2ljfImg4GHb+mTCRQaXCaWh+DR4AX1Rlt0nA1Uoep8XKGYlU OMn32naBa6cNTNv8NvUM30PdyGNKNX0HBmSs8pfcsf+ChDodzUsjiM/srZ2LTJuSxQ79 8aOEKcjybJSIVnOhWqsYyrVv/ydFledOrkAmE=
- 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:content-transfer-encoding; b=brRZDxezCXzf2vV/wBGOpg07gql7zCjPed6VjcjBLSNv92RPU8dsVsp36nZwBSFNpG GhtdBHzjLqRoyE+3f3YzxgXbR5x6r/skwmPJxTrhEqKBBRdenHh4EpjrxktE+7oK+8Gq Uc2QDa0kqh5jRCtMmr9XTyNzBB2sJifnb4Koc=
yet another thing:
if (b == Scalar(0))
this needs to be replaced by the appropriate fuzzy comparison
(ei_isMuchSmallerThan with appropriate parameters depending on your
context).
As we always say... implementing a basic version of a numeric
algorithm is only the beginning... then the real "fun" begins!
Benoit
2009/5/17 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>:
> One more thing...
> While your code is a great start for Givens-based QR, it is not what
> we mean by "QR specialized for fixed-size". For example, the QR
> currently in Eigen, when applied to a fixed-size matrix, specializes
> exactly as well as your code to that case. But when we say that having
> fixed-size specializations would be nice, we mean something else:
> compilers tend to do a poor job unrolling nested for loops, so what we
> really mean is that we'd need either hand-unrolled or meta-unrolled
> code. For examples of meta-unrolled code, you can have a look at the
> unrollers in Eigen/src/Core/Assign.h. For examples of hand-unrolled
> specializations (moreover using custom algorithms depending on the
> matrix size) have a look at Eigen/src/LU/Inverse.h. These are two
> possible approaches. This is the kind of optimizations for fixed-size
> that we had in mind when we said "fixed-size specializations of QR".
>
> Cheers,
> Benoit
>