24 public static void main(String x[]){
32 /* parseArgs(argc, (char** const)argv); */
33 /* SIM_GET_NUM_CPU(global_params[PARAM_THREAD]); */
35 System.out.print("Creating gene and segments... ");
36 Genome g = new Genome(x);
39 /* TM_STARTUP(numThread); */
40 /* P_MEMORY_STARTUP(numThread); */
41 /* thread_startup(numThread); */
43 Random randomPtr = new Random();
44 random_alloc(randomPtr);
45 random_seed(randomPtr, 0);
47 Gene genePtr = new Gene(geneLength);
48 genePtr.create(randomPtr);
49 String gene = genePtr.contents;
51 Segments segmentsPtr = new Segments(segmentLength, minNumSegment);
52 segmentsPtr.create(genePtr, randomPtr);
53 sequencer_t* sequencerPtr = sequencer_alloc(geneLength, segmentLength, segmentsPtr);
54 assert(sequencerPtr != NULL);
57 printf("Gene length = %li\n", genePtr->length);
58 printf("Segment length = %li\n", segmentsPtr->length);
59 printf("Number segments = %li\n", vector_getSize(segmentsPtr->contentsPtr));
63 printf("Sequencing gene... ");
70 sequencer_run(sequencerPtr);
73 thread_start(sequencer_run, (void*)sequencerPtr);
78 printf("Time = %lf\n", TIMER_DIFF_SECONDS(start, stop));
83 char* sequence = sequencerPtr->sequence;
84 int result = strcmp(gene, sequence);
85 printf("Sequence matches gene: %s\n", (result ? "no" : "yes"));
87 printf("gene = %s\n", gene);
88 printf("sequence = %s\n", sequence);
91 assert(strlen(sequence) >= strlen(gene));
95 printf("Deallocating memory... ");
97 sequencer_free(sequencerPtr);
98 segments_free(segmentsPtr);
100 random_free(randomPtr);
114 public static void parseCmdLine(String args[]) {
118 while (i < args.length && args[i].startsWith("-")) {
121 if(arg.equals("-g")) {
122 if(i < args.length) {
123 geneLength = new Integer(args[i++]).intValue();
125 } else if(arg.equals("-s")) {
126 if(i < args.length) {
127 segmentLength = new Integer(args[i++]).intValue();
129 } else if(arg.equals("-n")) {
130 if(i < args.length) {
131 minNumSegment = new Integer(args[i++]).intValue();
133 } else if(arg.equals("-t")) {
134 if(i < args.length) {
135 numThread = new Integer(args[i++]).intValue();
142 public enum param_types {
143 PARAM_GENE /*= (unsigned char)'g'*/,
144 PARAM_NUMBER /*= (unsigned char)'n'*/,
145 PARAM_SEGMENT /*= (unsigned char)'s'*/,
146 PARAM_THREAD /*= (unsigned char)'t',*/