CMP EMBEDDED.COM

Login | Register     Welcome Guest  
HOME DESIGN PRODUCTS COLUMNS E-LEARNING CONFERENCES CODE FORUMS/BLOGS NEWSLETTERS CONTACT FEATURES RSS RSS

Listing 1: The basic state machine

Listing 1: The basic state machine


double minimize(double (*f)(double), double x0, double x1)
{
typedef enum { INIT, RUN, SUCCEED, FAIL } STATE;
static STATE state = INIT;
for (int n = 100; n >= 0; n--) {
switch (state){
case INIT:
state = RUN;
break;
case RUN:
state = SUCCEED;
break;
case SUCCEED:
return (x0+x1)/2;
break;
case FAIL:
cout << "minimize: Function failed to converge\n";
n = 0;
break;
}
if (n == 1) state = FAIL;
}
return (x0+x1)/2;
}

Embedded.com Career Center
Looking for a new job?
SEARCH JOBS

Browse all jobs

SPONSOR
RECENT JOB POSTINGS





 :