home *** CD-ROM | disk | FTP | other *** search
- stanvy(lcx,lcm,lcn,nn,k,m,n,x,av,f,t)
-
- /* this function computes the analysis of variance table of a
- youden square and the f-ratio for treatments. the sum of
- squares for treatments is adjusted because of the incompleteness
- of the experimental data.
- */
-
- int lcx,lcm,lcn,nn,k,m[],n[];
- float av[],t[],x[],*f;
-
- {
- int i,j,ij,jim,jin,jix,kk,klrm,klrn,klrx;
- float xk,xl,xn,xx,s,c,c1,r1,t1,p,en,q;
-
- xk = k;
- xn = nn;
- av[5] = nn - 1;
- av[11] = k - 1;
- xl = xk * av[11] / av[5];
- av[0] = 0.;
- av[1] = nn * k;
- av[3] = 1.;
- s = 0.;
- c1 = 0.;
- r1 = 0.;
- t1 = 0.;
-
- for(i = 0; i <= nn-1; i++)
- t[i] = 0.;
- klrm = 0;
- klrx = 0;
-
- for(i = 0; i <= k-1; i++)
- {
- c = 0.;
-
- for(j = 0; j <= nn-1; j++)
- {
- jim = klrm + j * lcm;
- jix = klrx + j * lcx;
- xx = x[jix];
- c = c + xx;
- kk = m[jim] - 1;
- t[kk] = t[kk] + xx;
- av[0] = av[0] + xx * xx;
- }
- klrx = klrx + 1;
- klrm = klrm + 1;
- s = s + c;
- c1 = c1 + c * c;
- }
-
- for(i = 0; i <= ((nn-1)*lcx); i += lcx)
- {
- ij = i + 1;
- for(j = 1; j <= k-1; j++)
- {
- x[i] = x[i] + x[ij];
- ij = ij + 1;
- }
- r1 = r1 + x[i] * x[i];
- }
- klrn = 0;
-
- for(i = 0; i <= nn-1; i++)
- {
- p = 0.;
-
- for(j = 0; j <= nn-1; j++)
- {
- jin = klrn + j * lcn;
- en = n[jin];
- p = p + en * x[j*lcx];
- }
- q = xk * t[i] - p;
- klrn = klrn + 1;
- t1 = t1 + q * q;
- }
- av[2] = s * s / av[1];
- av[4] = t1 / (av[1] * xl);
- av[7] = r1 / xk - av[2];
- av[6] = av[4] / av[5];
- av[9] = 9999.99;
- av[10] = c1 / xn - av[2];
- av[12] = av[10] / av[11];
- av[8] = av[5];
- av[13] = av[0] - av[7] - av[10] - av[4] - av[2];
- av[14] = (nn - 1) * (k - 2);
- av[15] = av[13]/av[14];
- *f = av[4] / (av[5] * av[15]);
- }