/* environ.scs : Training environment. */ /* Procedure to select the next training pattern among the training set. */ generatesignal (environrec) erecord *environrec; { int j; char ch; /* Read the next training patern. */ for (j=(environrec->lsignal-1); j>=0; j--) { fscanf (trfile, "%c", &ch); switch (ch) { case '0' : environrec -> signal[j] = 0; break; case '1' : environrec -> signal[j] = 1; break; } } fscanf (trfile, "%c", &ch); /* Read and ignore ':'. */ /* Read result part. */ fscanf (trfile, "%d\n", &environrec->output); /* Increment test counter and rewind train file if end of file is reached. */ environrec -> testcount += 1; if (environrec->testcount == environrec->setcount) { environrec -> testcount = 0; rewind (trfile); } } /* Procedure to coordinate training pattern selections. */ environment (environrec) erecord *environrec; { generatesignal (environrec); } /* Procedure to initialize the training environment. */ initenvironment (efile, environrec) FILE *efile; erecord *environrec; { int j; fscanf (efile, "%d%s\n", &environrec->lsignal, d_str); /* Read number bits in env. message. */ fscanf (efile, "%d%s\n", &environrec->setcount, d_str); /* Read number of training patterns. */ environrec -> testcount = 0; /* Reset environment. */ environrec -> output =0; environrec -> classifieroutput = 0; for (j=0; jlsignal; j++) environrec -> signal[j] = 0; } /* Initial environment report. */ initrepenvironment (rep, environrec) FILE *rep; erecord *environrec; { fprintf (rep, "\n"); fprintf (rep, "Environmental Parameters (Training)\n"); fprintf (rep, "-----------------------------------------\n"); fprintf (rep, "Number of training patterns = %8d\n", environrec -> setcount); fprintf (rep, "Number of bits in a training pattern = %8d\n", environrec -> lsignal); } /* Procedure to write a signal in bit reverse order. */ writesignal (rep, signal, lsignal) FILE *rep; message signal; int lsignal; { int j; for (j=(lsignal-1); j>=0; j--) fprintf (rep, "%1d", signal[j]); } /* Procedure to write current multiplexer info. */ reportenvironment (rep, environrec) FILE *rep; erecord *environrec; { fprintf (rep, "\n"); fprintf (rep, "Current Environmental Status\n"); fprintf (rep, "----------------------------\n"); fprintf (rep, "Signal = "); writesignal (rep, environrec -> signal, environrec -> lsignal); fprintf (rep, "\n"); fprintf (rep, "Environmental result = %8d\n", environrec -> output); fprintf (rep, "Classifier output = %8d\n", environrec -> classifieroutput); }