Mercurial > hg > GearsTemplate
annotate src/parallel_execution/examples/bitonicSort/bitonicSort.cbc @ 381:b81492c74d2b
Create examples directory
author | Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 24 Jul 2017 16:52:09 +0900 |
parents | src/parallel_execution/examples/bitonicSort.cbc@783017f6dfbe |
children | f1d111e293c4 |
rev | line source |
---|---|
371 | 1 #include <stdio.h> |
2 #include <string.h> | |
3 #include <stdlib.h> | |
4 #include <unistd.h> | |
379
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
5 #include <math.h> |
371 | 6 |
381
b81492c74d2b
Create examples directory
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
380
diff
changeset
|
7 #include "../../../context.h" |
371 | 8 |
9 int cpu_num = 1; | |
10 int length = 100; | |
11 int gpu_num = 0; | |
12 int CPU_ANY = -1; | |
13 int CPU_CUDA = -1; | |
14 | |
15 void *start_taskManager(struct Context *context) { | |
16 goto initDataGears(context, Gearef(context, LoopCounter), Gearef(context, TaskManager)); | |
17 return 0; | |
18 } | |
19 | |
20 #ifdef USE_CUDAWorker | |
21 #ifdef USE_CUDA_MAIN_THREAD | |
22 extern volatile int cuda_initialized; | |
23 #endif | |
24 #endif | |
25 | |
26 __code initDataGears(struct LoopCounter* loopCounter, struct TaskManager* taskManager) { | |
27 // loopCounter->tree = createRedBlackTree(context); | |
28 loopCounter->i = 0; | |
29 taskManager->taskManager = (union Data*)createTaskManagerImpl(context, cpu_num, gpu_num, 0); | |
30 #ifdef USE_CUDAWorker | |
31 #ifdef USE_CUDA_MAIN_THREAD | |
32 while(! cuda_initialized) {}; | |
33 #endif | |
34 #endif | |
374
fb50cf8aa615
Add Iterator Interface
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
371
diff
changeset
|
35 goto meta(context, C_code1); |
371 | 36 } |
37 | |
38 __code initDataGears_stub(struct Context* context) { | |
39 struct TaskManager* taskManager = Gearef(context, TaskManager); | |
40 taskManager->taskManager = 0; | |
41 #if (! defined(USE_CUDAWorker) || ! defined(USE_CUDA_MAIN_THREAD)) | |
42 struct LoopCounter* loopCounter = Gearef(context, LoopCounter); | |
43 goto initDataGears(context, loopCounter, taskManager); | |
44 #else | |
45 cuda_initialized = 0; | |
46 pthread_t thread; | |
47 pthread_create(&thread, NULL, (void*)&start_taskManager, context); | |
48 while (taskManager->taskManager == 0); | |
49 TaskManager *t = (TaskManager*)taskManager->taskManager; | |
50 TaskManagerImpl *im = (TaskManagerImpl*)t->taskManager; | |
51 struct Queue *q = (Queue *)im->workers[0]; | |
52 createCUDAWorker(context,0,q, im); | |
53 pthread_join(thread,0); | |
54 exit(0); | |
55 #endif | |
56 } | |
57 | |
58 __code code1(struct Time* time) { | |
59 printf("cpus:\t\t%d\n", cpu_num); | |
60 printf("gpus:\t\t%d\n", gpu_num); | |
61 printf("length:\t\t%d\n", length); | |
62 /* puts("queue"); */ | |
63 /* print_queue(context->data[ActiveQueue]->queue.first); */ | |
64 /* puts("tree"); */ | |
65 /* print_tree(context->data[Tree]->tree.root); */ | |
66 /* puts("result"); */ | |
67 | |
374
fb50cf8aa615
Add Iterator Interface
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
371
diff
changeset
|
68 time->time = (union Data*)createTimeImpl(context); |
fb50cf8aa615
Add Iterator Interface
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
371
diff
changeset
|
69 time->next = C_createTask1; |
fb50cf8aa615
Add Iterator Interface
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
371
diff
changeset
|
70 goto meta(context, time->time->Time.start); |
371 | 71 } |
72 | |
379
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
73 __code createTask1(struct LoopCounter* loopCounter, struct TaskManager* taskManager) { |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
74 int logN = (int)log2((float)length); |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
75 struct Context** tasks = (struct Context**)ALLOC_ARRAY(context, Context, logN*(1+logN)/2 + 2); |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
76 int taskCount = 0; |
371 | 77 |
379
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
78 struct SortArray* outputSortArray = &ALLOCATE_DATA_GEAR(context, SortArray)->SortArray; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
79 struct SortArray* inputSortArray = outputSortArray; |
374
fb50cf8aa615
Add Iterator Interface
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
371
diff
changeset
|
80 |
379
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
81 // par goto makeArray(outputSortArray, _exit); |
371 | 82 struct Context* task = NEW(struct Context); |
376
b46f38645587
Run oneDimIterator_test
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
375
diff
changeset
|
83 initContext(task); |
379
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
84 task->next = C_makeArray; |
371 | 85 task->idgCount = 0; |
86 task->idg = task->dataNum; | |
87 task->maxIdg = task->idg; | |
88 task->odg = task->maxIdg; | |
379
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
89 task->data[task->odg] = (union Data*)outputSortArray; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
90 task->maxOdg = task->odg + 1; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
91 tasks[taskCount] = task; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
92 |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
93 taskCount++; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
94 for (int i=2; i <= length; i=2*i) { |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
95 int first = 1; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
96 for (int j=i>>1; j > 0; j=j>>1) { |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
97 outputSortArray = &ALLOCATE_DATA_GEAR(context, SortArray)->SortArray; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
98 struct Context* task = NEW(struct Context); |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
99 initContext(task); |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
100 struct Integer* integer1 = &ALLOCATE_DATA_GEAR(context, Integer)->Integer; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
101 struct Integer* integer2 = &ALLOCATE_DATA_GEAR(context, Integer)->Integer; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
102 integer1->value = j; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
103 integer2->value = first; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
104 |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
105 task->next = C_bitonicSwap; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
106 task->iterator = createOneDimIterator(context, length/2); |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
107 task->idgCount = 1; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
108 task->idg = task->dataNum; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
109 task->data[task->idg] = (union Data*)inputSortArray; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
110 task->data[task->idg+1] = (union Data*)integer1; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
111 task->data[task->idg+2] = (union Data*)integer2; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
112 task->maxIdg = task->idg + 3; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
113 task->odg = task->maxIdg; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
114 task->data[task->odg] = (union Data*)outputSortArray; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
115 task->maxOdg = task->odg + 1; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
116 tasks[taskCount] = task; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
117 taskCount++; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
118 first = 0; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
119 inputSortArray = outputSortArray; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
120 } |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
121 } |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
122 |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
123 // par goto printArray(inputSortArray, __exit) |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
124 task = NEW(struct Context); |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
125 initContext(task); |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
126 task->next = C_printArray; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
127 task->idgCount = 1; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
128 task->idg = task->dataNum; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
129 task->data[task->idg] = (union Data*)inputSortArray; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
130 task->maxIdg = task->idg + 1; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
131 task->odg = task->maxIdg; |
374
fb50cf8aa615
Add Iterator Interface
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
371
diff
changeset
|
132 task->maxOdg = task->odg; |
379
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
133 tasks[taskCount] = task; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
134 |
371 | 135 taskManager->contexts = tasks; |
379
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
136 // goto code2(); |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
137 taskManager->next1 = C_code2; |
371 | 138 goto meta(context, taskManager->taskManager->TaskManager.spawnTasks); |
379
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
139 //goto meta(context, taskManager->taskManager->TaskManager.shutdown); |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
140 } |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
141 |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
142 __code code2(struct LoopCounter* loopCounter, struct TaskManager* taskManager, struct Time* time) { |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
143 sleep(2); |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
144 taskManager->next = C_exit_code; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
145 goto meta(context, taskManager->taskManager->TaskManager.shutdown); |
371 | 146 } |
147 | |
148 void init(int argc, char** argv) { | |
149 for (int i = 1; argv[i]; ++i) { | |
150 if (strcmp(argv[i], "-cpu") == 0) | |
151 cpu_num = (int)atoi(argv[i+1]); | |
152 else if (strcmp(argv[i], "-l") == 0) | |
153 length = (int)atoi(argv[i+1]); | |
154 else if (strcmp(argv[i], "-cuda") == 0) { | |
155 gpu_num = 1; | |
156 CPU_CUDA = 0; | |
157 } | |
158 } | |
159 } | |
160 | |
161 int main(int argc, char** argv) { | |
162 init(argc, argv); | |
163 struct Context* main_context = NEW(struct Context); | |
164 initContext(main_context); | |
165 main_context->next = C_initDataGears; | |
166 | |
167 goto start_code(main_context); | |
168 } | |
379
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
169 |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
170 __code makeArray(__code next(struct SortArray* output, ...)){ |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
171 struct SortArray* output = *O_output; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
172 if (output->loopCounter == 0){ |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
173 output->array = (Integer**)ALLOC_ARRAY(context, Integer, length); |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
174 srand((unsigned) time(NULL)); |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
175 } |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
176 if (output->loopCounter == GET_SIZE(output->array)){ |
380
783017f6dfbe
Running bitonicSort
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
379
diff
changeset
|
177 printf("created Array\n"); |
379
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
178 output->loopCounter = 0; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
179 goto meta(context, next); |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
180 } |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
181 struct Integer* integer = new Integer(); |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
182 integer->value = rand() % 1000; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
183 output->array[output->loopCounter] = integer; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
184 printf("%d\n", output->array[output->loopCounter]->value); |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
185 output->loopCounter++; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
186 *O_output = output; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
187 goto meta(context, C_makeArray); |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
188 } |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
189 |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
190 __code makeArray_stub(struct Context* context) { |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
191 SortArray** O_output = (struct SortArray **)&context->data[context->odg]; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
192 goto makeArray(context, |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
193 context->next, |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
194 O_output); |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
195 } |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
196 |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
197 __code printArray(struct SortArray* inputArray, __code next(...)){ |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
198 if (inputArray->loopCounter == GET_SIZE(inputArray->array)){ |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
199 inputArray->loopCounter = 0; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
200 goto meta(context, next); |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
201 } |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
202 printf("%d\n", inputArray->array[inputArray->loopCounter]->value); |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
203 inputArray->loopCounter++; |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
204 goto meta(context, C_printArray); |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
205 } |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
206 |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
207 __code printArray_stub(struct Context* context) { |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
208 goto printArray(context, |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
209 &context->data[context->idg]->SortArray, |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
210 context->next); |
2744cb933ebc
Fix compile error for bitonicSort but not work
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
376
diff
changeset
|
211 } |