Mercurial > hg > Members > tatsuki > Alice
comparison src/main/java/alice/test/codesegment/local/bitonicsort/SetTask.java @ 345:8f71c3e6f11d
Change directory structure Maven standard
author | sugi |
---|---|
date | Wed, 16 Apr 2014 18:26:07 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
344:9f97ec18f8c5 | 345:8f71c3e6f11d |
---|---|
1 package alice.test.codesegment.local.bitonicsort; | |
2 | |
3 import alice.codesegment.CodeSegment; | |
4 import alice.datasegment.CommandType; | |
5 import alice.datasegment.Receiver; | |
6 | |
7 public class SetTask extends CodeSegment { | |
8 public static long t; | |
9 private Receiver info1 = ids.create(CommandType.PEEK); | |
10 private Receiver info2 = ids.create(CommandType.TAKE); | |
11 | |
12 SetTask(){ | |
13 info1.setKey("sortconf"); | |
14 info2.setKey("list"); | |
15 } | |
16 | |
17 @Override | |
18 public void run() { | |
19 SortConfig conf = info1.asClass(SortConfig.class); | |
20 DataList list = info2.asClass(DataList.class); | |
21 | |
22 int sort_count = conf.getSplitNum()*2; | |
23 ods.put("sort_count", sort_count*2); | |
24 | |
25 int block_num = (conf.getLength() + sort_count- 1) / sort_count; | |
26 ods.put("block_num", block_num); | |
27 | |
28 System.out.println("sort start"); | |
29 t = System.currentTimeMillis(); | |
30 { | |
31 int i; | |
32 for (i = 0; i < sort_count / 2; i++) { | |
33 // anonymous datasegmaents should be used. | |
34 ods.put(SetInfo.range[i], new RangeInfo(i,i==(sort_count/2)-1)); | |
35 ods.update(SetInfo.array[i*2], list.createDataList(i*2*block_num, block_num)); | |
36 ods.update(SetInfo.array[i*2+1], list.createDataList((i*2+1)*block_num, block_num)); | |
37 ods.update(SetInfo.count[i], 0); | |
38 new SortPhase(SetInfo.range[i],SetInfo.array[i*2],SetInfo.array[i*2+1],0,SetInfo.count[i]); | |
39 | |
40 } | |
41 new ShowData(i*2, sort_count); | |
42 | |
43 } | |
44 | |
45 | |
46 } | |
47 | |
48 } |