#include #include #include "SL_Generated.h" using namespace std; int main(int argc, char** argv) { int threads = 0; char* targetString = "METHINKS IT IS LIKE A WEASEL"; if(argc > 1) targetString = argv[1]; int C = 100; if(argc > 2) C = atoi(argv[2]); SL_FLOAT P = 0.05; if(argc > 3) P = atof(argv[3]); int seed = time(NULL); if(argc > 4) seed = atoi(argv[4]); int targetDims[] = {strlen(targetString), 0}; Sequence target((void*)targetString, targetDims); sl_init(threads); Sequence parent; Sequence newParent; Sequence parentRands; sl_create(seed++, 1, 27, target.size(), threads, parentRands); sl_initializeParent(parentRands, threads, parent); Sequence< Sequence > charRands; Sequence< Sequence > rateRands; cout << "Start:\t" << parent << endl; for(int i = 1; !(parent == target); i++) { sl_create(seed++, 1, 27, C, target.size(), threads, charRands); sl_create(seed++, 0.0, 1.0, C, target.size(), threads, rateRands); sl_evolve(target, parent, C, P, rateRands, charRands, threads, newParent); parent = newParent; cout << "#" << i << ":\t" << parent << endl; } cout << "End:\t" << parent << endl; sl_done(); return 0; }