[eigen] Re: JacobiSVD API changed and functionality expanded |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen <eigen@xxxxxxxxxxxxxxxxxxx>
- Subject: [eigen] Re: JacobiSVD API changed and functionality expanded
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Fri, 8 Oct 2010 11:45:20 -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=aEWBuU1l4CSpGzp14ioiwu9tUNei4+NBlaNVKEO78zg=; b=Qu2Zh9+gI12uGITlggi/Oso3NHxqd4BlQiiDbmA8zKKU/5eXVBr/6LvPxDTADitJMe 5yfQ/UTu7OcPmJ6z194RX2tsJbEChpVCFpmSfvVm4ur0jHNYeLqH28Ml2IEapP+9Y70y Fl20fSjDSio6CRuDdNJQKKTCnOapqIIai8BFE=
- 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=WpitZw89u70wloHRU5HtZgY/gH7wMpI2WsbNgIPMqstFjyOgWf1+8VryqiyeOPnF2Q ZEhN4M0eaLBioZlVKvtiypvo14B/lrOjqBjI43yjgqXjxxUiAlk78LjsIALABgaKo7Lc YBNcExQw61sO28vziZIYd+gtRUVXi7LikegXs=
2010/10/8 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>:
> Hi,
>
> just a quick note --- more details will follow in beta2 announcement.
> JacobiSVD's API just changed a lot, see the new class documentation
> (currently in the source until online docs get updated).
>
> template params: JacobiSVD<MatrixType, QRPreconditioner>
>
> the QRPreconditioner param is optional, so you can ignore it. But you
> can also set it to other values to get something faster / smaller
> executable etc, at the cost of less safety and accuracy.
>
> The biggest API change is that if you want U or V, you not have to
> tell it explicitly at runtime, when you compute the decomposition.
> The biggest feature addition is that you can now get thin U / V.
>
> Examples:
> JacobiSVD<MatrixXf> svd(matrix); // compute only singular values, no U, no V
> JacobiSVD<MatrixXf> svd(matrix, ComputeThinU | ComputeFullV); //
> compute thin U and full V
ah wait... the latter line won't work because the default
FullPivHouseholderQRPreconditioner doesn't allow to get thin
unitaries. OK, that's the last nail in its coffin as default
QRPreconditioner. Switching to ColPivHousholderQRPreconditioner as
default... in the meanwhile you can do:
JacobiSVD<MatrixXf, ColPivHousholderQRPreconditioner> svd(matrix,
ComputeThinU | ComputeFullV);
Benoit
> Upcoming: solve(), which will allow to get rid of our crappy,
> borrowed-from-elsewhere SVD class.
>
> Benoit
>