[GRASS-user] Testing i.pca ~ prcomp(), m.eigensystem ~ princomp()

Nikos Alexandris nikos.alexandris at felis.uni-freiburg.de
Tue Mar 3 10:16:39 EST 2009

> Eigenvalue provided by i.pca. I can't nail this one:
> > *** how is it calculated? *** Looks like it is some _weighted_
> > variance... !??
> ....
> > Hamish, if you have the time (or anyone , could you please "translate"
> > the code in "grass6_dev/imagery/i.pca/main.c", concerning the "eigval"
> > variable, in some pseudocode. It is really the last thing to clarify ( I
> > think ).

> for i.pca they are calculated by the eigen() function in lib/gmath/eigen.c
> see also lib/gmath/eigen_tools.c  

I am trying to get a grip on eigen.c. The variables that refer to the
eigenvalues are symbolised as:

   double *lambda  OR  lambda

which is the

   double d[]  as defined  IN  G_tqli()  IN  eigen_tools.c

And then there is this "fabs" in the way :-) I suppose it returns the
absolute value of a signed number... It took me so long to figure this
simple thing out. Well, there are so many variables... it's
hard(=time-consuming) for the unexperienced eye to trace down the real

As suggested by Markus, I will try to move this in the Wiki.
Apologies for the long posts again, Nikos

More information about the grass-user mailing list