[R] Understanding dsyrk_ in C code

Nathan S. Watson-Haigh nathan.watson-haigh at csiro.au
Wed Jan 7 03:54:14 CET 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I'm trying to understand some C code in an R package I'm using. I'm address this question here as
it's matrix algebra...and I'm no pro at that!

the C command reads:

double alpha = 1.0, beta = 0.0;
dsyrk_("L", "N", nGenes, nGenes, & alpha, mat1, nGenes,
         & beta, mat2, nGenes);

- From google, I've found out that dsyrk is for performing one of the symmetric rank k operations -
whatever that means!? From here:
http://linux.die.net/man/l/dsyrk

I've found that the calculation being performed is:
alpha*A*A' + beta*C

However, since alpha is 1 and beta is 0, this reduces to:
=> 1*A*A' + 0*C
=> A*A'

Which is simply the cross product....am I correct?

Cheers,
Nath

- --
- --------------------------------------------------------
Dr. Nathan S. Watson-Haigh
OCE Post Doctoral Fellow
CSIRO Livestock Industries
Queensland Bioscience Precinct
St Lucia, QLD 4067
Australia

Tel: +61 (0)7 3214 2922
Fax: +61 (0)7 3214 2900
Web: http://www.csiro.au/people/Nathan.Watson-Haigh.html
- --------------------------------------------------------

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAklkGVYACgkQ9gTv6QYzVL73HgCgvx4OCxcuczv8nd0n6gOEPFYa
w3UAnAnDIkvPDen9p7ahz+BdG47V/D/S
=gSGC
-----END PGP SIGNATURE-----




More information about the R-help mailing list