home *** CD-ROM | disk | FTP | other *** search
- stanvg(lcx,lcmt,lcmg,n,mt,mg,x,av,t)
-
- /*this subroutine computes the analysis of variance table for a*/
- /*simple graeco-latin square design.*/
-
- float mt[], mg[], x[], av[], t[];
- int lcx,lcmt,lcmg,n;
-
- {
-
- float sumx,sumx2,sumc2,sumr2,r,c,xn;
- int klrx,i,ijx,ijmt,j,ji,kt,ijmg,kg;
-
- sumx = 0.0;
- sumx2 = 0.0;
- sumc2 = 0.0;
- sumr2 = 0.0;
- av[12] = 0.0;
- av[8] = 0.0;
-
- for (i = 0; i <= n-1; i++)
- t[i] = 0.0;
-
- klrx = 0;
-
- for (i = 0; i <= n-1; i++)
- {
- r = 0.0;
- c = 0.0;
- ijx = i*lcx;
- ijmt = i*lcmt;
-
- for (j = 0; j <= n-1; j++)
- {
- ji = klrx + j*lcx;
- sumx2 = sumx2 + x[ijx]*x[ijx];
- r = r + x[ijx];
- c = c + x[ji];
- kt = mt[ijmt] - 1;
- t[kt] = t[kt] + x[ijx];
- ijx = ijx + 1;
- ijmt = ijmt + 1;
- }
- klrx = klrx + 1;
- sumx = sumx + r;
- sumc2 = sumc2 + c*c;
- sumr2 = sumr2 + r*r;
- }
-
- for (i = 0; i <= n-1; i++)
- av[8] = av[8] + t[i]*t[i];
-
- for (i = 0; i <= n-1; i++)
- t[i] = 0.0;
-
- for (i = 0; i <= n-1; i++)
- {
- ijx = i*lcx;
- ijmg = i*lcmg;
-
- for (j = 0; j <= n-1; j++)
- {
- kg = mg[ijmg] - 1;
- t[kg] = t[kg] + x[ijx];
- ijmg = ijmg + 1;
- ijx = ijx + 1;
- }
- }
-
- for (i = 0; i <= n-1; i++)
- av[12] = av[12] + t[i]*t[i];
-
- xn = n;
- c = sumx*sumx/(xn*xn);
-
- av[0] = sumr2/xn - c;
- av[4] = sumc2/xn - c;
- av[8] = av[8]/xn - c;
- av[12] = av[12]/xn - c;
- av[1] = n - 1;
- av[17] = av[1]*(xn - 3.0);
- av[16] = sumx2-c-av[0]-av[4]-av[8]-av[12];
- av[18] = av[16]/av[17];
- av[2] = av[0]/av[1];
- av[3] = av[2]/av[18];
- av[5] = av[1];
- av[6] = av[4]/av[5];
- av[7] = av[6]/av[18];
- av[9] = av[5];
- av[10] = av[8]/av[9];
- av[11] = av[10]/av[18];
- av[13] = av[9];
- av[14] = av[12]/av[13];
- av[15] = av[14]/av[18];
- av[19] = c;
- av[20] = 1.;
- av[21] = sumx2;
- av[22] = xn*xn;
-
- }