Category : Files from Magazines
Archive   : CUJ9209.ZIP
Filename : 1009087A

 
Output of file : 1009087A contained in archive : CUJ9209.ZIP

/*
madmain.c

This file contains the main calling
routine for the Madaline (Modified
Adaptive Linear Element) program.

Dwayne Phillips
February 1992

Notes:

the inputs array x has N+2 elements
x[0] is always 1
then there are 1 to N elements
then the last element is the target
the weights array w has N+1 by A elements
w[0] is the bias
then there are 1 to N elements
the nets array nets has A elements
the outputs array outs has A elements

*/




#include
#include
#include


main(argc, argv)
int argc;
char *argv[];
{
char choice;
char inputs_file[80], weights_file[80];
FILE *inputs, *weights;
int files_ok = 1;
long **w, *x, *nets, *outs, N, A;
int i, j;


if(argc < 7){
printf("\n\nUsage: madaline inputs_file weights_file ");
printf("\n size_of_vectors #_of_adalines mode choice_type");
printf("\n where mode=t (training)");
printf("\n where mode=i (input data)");
printf("\n where mode=w (working)");
printf("\n where choice_type=m (majority vote)");
printf("\n where choice_type=o (logical OR)");
printf("\n where choice_type=a (logical AND)");
exit(1);
}

strcpy(inputs_file, argv[1]);
strcpy(weights_file, argv[2]);

N = atoi(argv[3]);
A = atoi(argv[4]);

if(argv[5][0] != 'i' &&
argv[5][0] != 'I' &&
argv[5][0] != 't' &&
argv[5][0] != 'T' &&
argv[5][0] != 'w' &&
argv[5][0] != 'W'){
printf("\nERROR - Did not enter a correct mode");
exit(1);
}

choice = argv[6][0];
if(choice != 'o' &&
choice != 'O' &&
choice != 'A' &&
choice != 'a' &&
choice != 'm' &&
choice != 'M'){
printf("\nERROR - Did not enter a correct choice type");
exit(1);
}

x = (long *) malloc((N+2) * sizeof(long ));
outs = (long *) malloc(A * sizeof(long ));
nets = (long *) malloc(A * sizeof(long ));

w = malloc(A * sizeof(long *));
for(i=0; i w[i] = malloc((N+1) * sizeof(long ));
printf("\n\tw[%d] = %x", i, w[i]);
if(w[i] == '\0'){
printf("\n\tmalloc of w[%d] failed", i);
exit(0);
}
}



/* I N P U T M O D E */

if(argv[5][0] == 'i' || argv[5][0] == 'I'){
if( (inputs = fopen(inputs_file, "w+b")) == '\0'){
printf("\n\nERROR - cannot open input vector file\n");
exit(0);
}
else
get_straight_input_vectors(inputs, x, N);
} /* ends if input_mode */


/* T R A I N I N G M O D E */

if(argv[5][0] == 't' || argv[5][0] == 'T'){
if( (inputs = fopen(inputs_file, "r+b")) == '\0'){
printf("\n\nERROR - cannot open input vector file\n");
files_ok = 0;
exit(0);
}

if( (weights = fopen(weights_file, "w+b")) == '\0'){
printf("\n\nERROR - cannot open weights vector file\n");
files_ok = 0;
exit(0);
}

if(files_ok){
printf("files ok");
train_the_madaline(inputs, weights, x, w,
nets, outs, N, A, choice);
}

} /* ends training mode */



/* W O R K I N G M O D E */
if(argv[5][0] == 'w' || argv[5][0] == 'W'){

if( (weights = fopen(weights_file, "r+b")) == '\0'){
printf("\n\nERROR - cannot open weights vector file\n");
exit(0);
}
else
process_new_madaline(weights, x, w, nets, outs, choice, N, A);

} /* ends if working_mode */



/* free up the allocated space */

for(i=0; i free(w[i]);

free(w);
free(x);
free(nets);
free(outs);

} /* ends main */


  3 Responses to “Category : Files from Magazines
Archive   : CUJ9209.ZIP
Filename : 1009087A

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/