home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / C-SSP.ARJ / STMEAN.C < prev    next >
Encoding:
Text File  |  1984-07-27  |  2.0 KB  |  93 lines

  1.       stmean (i,nx,x,ny,y,a)
  2.  
  3.       /*this subroutine computes the means, variances, and t-ratio for*/
  4.       /*two groups of data.*/
  5.  
  6.       int i,nx,ny;
  7.       float x[],y[],a[];
  8.  
  9.      {
  10.  
  11.       extern double sqrt();
  12.       float sumx,sumx2,sumy,sumy2,sumxy,sumxy2;
  13.       float xn,yn,xn1,yn1,xnxn1,x1dy1,x1py1,a1dxn,a4dyn,f,f2,t;
  14.       int l;
  15.  
  16.       sumx = sumx2 = 0.0;
  17.  
  18.       for (l = 0; l <= nx-1; l++)
  19.  
  20.       {
  21.         sumx = sumx + x[l];
  22.         sumx2 = sumx2 + x[l]*x[l];
  23.       }
  24.  
  25.       sumy = sumy2 = 0.0;
  26.  
  27.       for (l = 0; l <= ny-1; l++)
  28.  
  29.       {
  30.         sumy = sumy + y[l];
  31.         sumy2 = sumy2 + y[l]*y[l];
  32.       }
  33.  
  34.       if (i == 1)
  35.       {
  36.         sumxy = sumxy2 = 0.0;
  37.  
  38.         for (l = 0; l <= nx-1; l++)
  39.         {
  40.           sumxy = sumxy + x[l] - y[l];
  41.           sumxy2 = sumxy2 + (x[l] - y[l])*(x[l] - y[l]);
  42.         }
  43.       }
  44.  
  45.       xn = nx;
  46.       yn = ny;
  47.       xn1 = xn - 1.0;
  48.       yn1 = yn - 1.0;
  49.       xnxn1 = xn * xn1;
  50.       x1py1 = xn1 + yn1;
  51.       a[0] = sumx / xn ;
  52.       a[1] = (xn * sumx2 - sumx * sumx) / xnxn1;
  53.       t = a[2];
  54.       a[2] = sqrt(t);
  55.       a[3] = sumy / yn;
  56.       a[4] = (yn * sumy2 - sumy * sumy) / (yn * yn1);
  57.       t = a[4];
  58.       a[5] = sqrt(t);
  59.       a1dxn = a[1] / xn;
  60.       a4dyn = a[4] / yn;
  61.  
  62.       if (i == 1)
  63.       {
  64.         a[6] = sqrt(a1dxn);
  65.         a[7] = sqrt(a4dyn);
  66.         a[8] = sumxy / xn;
  67.         a[9] = (xn * sumxy2 - sumxy * sumxy) / xnxn1;
  68.         t = a[9] / xn;
  69.         a[10] = sqrt(t);
  70.         a[11] = a[8] / a[10];
  71.         a[12] = xn1 + xn1;
  72.         return;
  73.       }
  74.       a[6] = a[0] - a[3];
  75.       if (i != 3)
  76.       {
  77.         a[7] = (a[1] * xn1 + a[4] * yn1) * (xn + yn) / (x1py1 * xn * yn);
  78.         a[10] = x1py1;
  79.       }
  80.       else
  81.       {
  82.         a[7] = a1dxn + a4dyn;
  83.         f = a1dxn / a[7];
  84.         f2 = f*f;
  85.         a[10] = (xn1 * yn1) / (x1py1 * f2 + xn1 * (1.0 - f - f));
  86.       }
  87.       t = a[7];
  88.       a[8] = sqrt (t);
  89.       a[9] = a[6] / a[8];
  90.  
  91.      }
  92.  
  93.