home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / C-SSP.ARJ / STANV2.C < prev    next >
Encoding:
Text File  |  1984-08-18  |  1.4 KB  |  61 lines

  1.    stanv2 (llc,nr,nc,x,av)
  2.  
  3.       /* the purpose of this function is to compute analysis of  */
  4.       /* variance for a 2-way crossed classification without     */
  5.       /* replication.                                            */
  6.  
  7.       int llc,nr,nc;
  8.       float av[],x[];
  9.  
  10.    {
  11.  
  12.       int i,j,ij;
  13.       float cr,sum,sumx,sumxx,sumx2,sumr,sumr2,sumc,sumc2;
  14.  
  15.       sumx = 0.0;
  16.       sumx2 = 0.0;
  17.       sumr2 = 0.0;
  18.       sumc2 = 0.0;
  19.  
  20.       for(i = 0; i <= nr-1; i++)
  21.       {
  22.        sumr = 0.0;
  23.        ij = i * llc;
  24.  
  25.        for(j = 0; j <= nc-1; j++)
  26.        {
  27.         sumr = sumr + x[ij];
  28.         ij = ij + 1;
  29.        }
  30.       sumx = sumx + sumr;
  31.       sumr2 = sumr2 + sumr * sumr;
  32.       }
  33.  
  34.       for(j = 0; j <= nc-1; j++)
  35.       {
  36.        sumc = 0.;
  37.        for(i = 0; i <= nr-1; i++)
  38.        {
  39.         ij = j + (i * llc);
  40.         sumx2 = sumx2 + x[ij] * x[ij];
  41.         sumc = sumc + x[ij];
  42.        }
  43.        sumc2 = sumc2 + sumc * sumc;
  44.       }
  45.       sumxx = sumx * sumx;
  46.       cr = nc * nr;
  47.       av[5] = nc - 1.0;
  48.       av[1] = nr - 1.0;
  49.       av[9] = cr - 1.0;
  50.       av[11] = av[5] * av[1];
  51.       av[4] = (nc * sumc2 - sumxx) / cr;
  52.       av[6] = av[4] / av[5];
  53.       av[0] = (nr * sumr2 - sumxx) / cr;
  54.       av[2] = av[0] / av[1];
  55.       av[8] = sumx2 - sumxx / cr;
  56.       av[10] = av[8] - av[0] - av[4];
  57.       av[12] = av[10] / av[11];
  58.       av[7] = av[6] / av[12];
  59.       av[3] = av[2] / av[12];
  60.    }
  61.