25 int c, p, band1, band2;
37 for (n = 0; n < C->nclasses; n++) {
38 I_new_signature(&C->S);
41 for (p = 0; p < C->npoints; p++) {
52 for (band1 = 0; band1 < C->nbands; band1++) {
53 m1 = C->sum[band1][c] / dn;
54 p1 = C->points[band1][p];
55 for (band2 = 0; band2 <= band1; band2++) {
56 m2 = C->sum[band2][c] / dn;
57 p2 = C->points[band2][p];
58 C->S.sig[c].var[band1][band2] += (p1 - m1) * (p2 - m2);
63 for (c = 0; c < C->nclasses; c++) {
64 dn = n = C->S.sig[c].npoints = C->count[c];
67 for (band1 = 0; band1 < C->nbands; band1++)
68 C->S.sig[c].mean[band1] = C->sum[band1][c] / dn;
69 dn = n = C->count[c] - 1;
72 for (band1 = 0; band1 < C->nbands; band1++)
73 for (band2 = 0; band2 <= band1; band2++)
74 C->S.sig[c].var[band1][band2] /= dn;
75 C->S.sig[c].status = 1;