|
From: | Georg Klein |
Subject: | Re: [Toon-members] TooN GR_SVD.h |
Date: | Mon, 24 Aug 2009 20:10:16 +0100 |
On 24 Aug 2009, at 19:15, E. Rosten wrote:
On Mon, 24 Aug 2009, Georg Klein wrote:CVSROOT: /sources/toon Module name: TooN Changes by: Georg Klein <georgklein> 09/08/24 17:03:40 Added files: . : GR_SVD.h Log message:Added SVD implementation translated from FORTRAN, in turn translated from ALGOL of Golub and Reinsch. This looks very similar to other translations e.g. the one in Numerical Recipes. It doesn't have many of the more modernimprovements like the underflow-safe sqrt(a*a + b*b) yet. Currently only implemented for static-sized matrices.I think the algorithm is less mo,dern than used by e.g. LAPACK but this hereis 4x as fast for small matrices.Any idea at what kind of sizes the LAPACK one is faster?
Timings in microseconds for the decomposition, double precision Size GR-lite GR-full LAPACK 4 3.1 3.2 20.1 6 8.6 9.3 38.3 8 14.3 15.9 64.4 36 393 683 1109 100 5108 11107 12303 150 15323 37625 36527 200 35323 86091 75721 GR-lite means only calculating W, not U or V. So lapack wins after somewhere between 100 and 150. The above are double precision. Single precision GR-full. 4 2.1646 6 5.59395 8 10.9096 36 474.338 36 483.207 100 8962.8 150 28750.5 200 66072.3 This all on a 2.6GHZ core 2 duo.
[Prev in Thread] | Current Thread | [Next in Thread] |