Re: [Lapackpp-devel] symmetry in packed storage, other questions
Status: Beta
Brought to you by:
cstim
From: Christian S. <sti...@tu...> - 2006-11-21 10:30:15
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Dominik Wagenfuehr schrieb: >> And I also cannot think of an easy solution here that would be all of >> this: 1. easy >> for non-mathematics, 2. give the correct results, and 3. is powerful >> enough to actually achieve this memory optimization. Sigh. > > Did you take a look at the PP-classes that means "real symmetric > positive definite matrix stored in packed format", see > http://docs.sun.com/source/806-7993/dpptrs.html. I haven't found a > description what this matrices looks like but I would guess that only > one half of the matrix is stored. Thanks for pointing this out. The link to "dpptrs" and "dpptrf" can be added to the documentation of LaSymmMatDouble, just for future reference. The description of the format is in the description of the input argument "A" and/or in the man-page of dpptrf, "man dpptrf". See also http://www.netlib.org/lapack/lug/node121.html and its subsections which is probably an even better explanation. However, currently lapackpp doesn't use the "packed storage" matrix format at all. That means none of the packed-storage LAPACK function are declared in the C header files include/blas*.h. Obviously all the "symmetric" classes and related LAPACK solver functions were only using the normal storage scheme, where no storage savings were achived. You can now either add the packed storage with its related solver functions as an additional set of classes and functions (LaPSymmMatDouble, for example). Or we can decide to switch the existing symmetric classes over to packed storage. Unfortunately I have no idea whether anyone relies on the existing symmetric classes. To be on the safe side, I'd definitely prefer to have the packed storage as additional classes... Funny enough, LAPACK seems to have some more functionality for the conventional storage than for the packed storage. For example, the eigenvalue decompositions (dsyev,dsyevd, dsyevr, dsyevx) seems to be unavailable for packed storage. >> So if you're working on "dsyrk" of Blas_R1_Update, >> you can just as well add an alternative >> function where the transpose setting is controlled by an additional >> boolean argument. > > I will do so. But boolean is not enough because it could be N, T or C as > argument. Although I have never heard of Blas_R1_Update before I will > use the same name and will set the last char parameter as default='N'. > So we have backward compatibility and could use the new function. :) What is the difference between 'T' or 'C'? I don't see any. Therefore there are only two possibilities. >> You're still invited to give me your sourceforge username and join the >> lapackpp project as a developer :-) > > Yes. The username is "deedw" without quotes of course. :) But I have > never used CVS so it may be that I will send the new files to the > mailing list. You are added as a developer now. If the anonymous CVS access is too slow, you can switch over to the developer access. Submitting changes by email is still fine, though. Christian -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.1 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQCVAwUBRWLVHmXAi+BfhivFAQJiGgP8CxMVDuMpFsBFOYaE878YOvBYWGNb0DFQ ATECzWqQOn/YwtS8OA4T9bRrraLKPlS0EhrNtyBGpS5MMaSuVOvmidoWedLyU6/y yaSwRb3+5aplAorq7HxeUsGRymud4gj5Hiiw/HnGsZR9Co3IvFlDk8h6VIIaLgg/ ObWesLXvcq8= =DADX -----END PGP SIGNATURE----- |