home *** CD-ROM | disk | FTP | other *** search
- stgeom(n,d,gm,gsd)
-
- /*this subroutine computes the geometric mean and standard*/
- /*deviation for a geometrically normal series of data.*/
-
- int n;
- float d[],*gm,*gsd;
-
- {
-
- float en,enm1,bb,b,xlgm;
- int i;
- extern double exp(),log(),sqrt();
-
- *gm = d[0];
- *gsd = 0.0;
- if (n <= 1) return;
- en = n;
- enm1 = en - 1.0;
- bb = log(d[0]);
- *gm = bb;
- b = bb*bb;
-
- for (i = 1; i <= n-1; i++)
- {
- bb = log(d[i]);
- *gm = *gm + bb;
- b = b + bb*bb;
- }
-
- xlgm = *gm/en;
- *gm = exp(xlgm);
- *gsd = exp(sqrt((b - en * xlgm * xlgm)/enm1));
-
- }