2 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
6 * A PICTURE RECONSTRUCTION PROGRAM *
8 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
10 stopex.cpp,v 1.2 2008/08/25 16:11:09 jklukowska Exp
12 DETERMINE THE ALGORITHM STOPPING CRITERION. SET TERM TO REFLECT
13 IT. FOR AN ITERATION COUNT, TERM IS THE NEGATIVE OF THAT NUMBER.
14 FOR A TEST NAME, TERM CONTAINS THE INDEX.
30 #include "trm_weighted_squared_distance.h"
42 trm_weighted_squared_distance trm_weighted_squared_distance_inst;
44 termtest_class* TrmClasses[] =
52 &trm_weighted_squared_distance_inst
57 static const INTEGER code[] =
59 CHAR2INT('i','t','e','r'),
60 CHAR2INT('t','e','r','m')
63 static const INTEGER testn[] =
65 CHAR2INT('t','r','m','1'),
66 CHAR2INT('t','r','m','2'),
67 CHAR2INT('v','a','r','i'),
68 CHAR2INT('m','l','s','t'),
69 CHAR2INT('k','l','d','s'),
70 CHAR2INT('r','e','s','i'),
71 CHAR2INT('w','s','q','d')
73 INTEGER num_termination_criteria = 7;
80 // GET THE TERMINATION CRITERION
81 word = InFile.getwrd(FALSE, &eol, code, 2);
85 case CHAR2INT('i','t','e','r'):
87 // GET THE NUMBER OF ITERATIONS
88 word = InFile.getint(FALSE, &eol);
92 fprintf(output, "\n **** number of iterations must be greater than zero");
93 fprintf(output, "\n **** program aborted\n");
97 Term.iterations = word;
98 Term.termInstance = NULL;
99 fprintf(output, "\n %4i iterations", word);
102 case CHAR2INT('t','e','r','m'):
104 // READ THE TEST NAME
105 word = InFile.getwrd(FALSE, &eol, testn, num_termination_criteria);
107 for(i = 0; i < num_termination_criteria; i++) {
108 if(word == testn[i]) {
109 fprintf(output, "\n termination test %s", int2str(word));
111 Term.termInstance = TrmClasses[i];
112 Term.termInstance->Init();
119 fprintf(output, "\n **** unknown test %s", int2str(word));
120 fprintf(output, "\n **** program aborted\n");
126 fprintf(output, "\n **** unknown command %s, ITER or TERM must be specified", int2str(word));
127 fprintf(output, "\n **** program aborted\n");