Mercurial > hg > Database > Alice
view 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 | aefbe41fcf12 |
line wrap: on
line source
package alice.test.codesegment.local.bitonicsort; import alice.codesegment.CodeSegment; import alice.datasegment.CommandType; import alice.datasegment.Receiver; public class SetTask extends CodeSegment { public static long t; private Receiver info1 = ids.create(CommandType.PEEK); private Receiver info2 = ids.create(CommandType.TAKE); SetTask(){ info1.setKey("sortconf"); info2.setKey("list"); } @Override public void run() { SortConfig conf = info1.asClass(SortConfig.class); DataList list = info2.asClass(DataList.class); int sort_count = conf.getSplitNum()*2; ods.put("sort_count", sort_count*2); int block_num = (conf.getLength() + sort_count- 1) / sort_count; ods.put("block_num", block_num); System.out.println("sort start"); t = System.currentTimeMillis(); { int i; for (i = 0; i < sort_count / 2; i++) { // anonymous datasegmaents should be used. ods.put(SetInfo.range[i], new RangeInfo(i,i==(sort_count/2)-1)); ods.update(SetInfo.array[i*2], list.createDataList(i*2*block_num, block_num)); ods.update(SetInfo.array[i*2+1], list.createDataList((i*2+1)*block_num, block_num)); ods.update(SetInfo.count[i], 0); new SortPhase(SetInfo.range[i],SetInfo.array[i*2],SetInfo.array[i*2+1],0,SetInfo.count[i]); } new ShowData(i*2, sort_count); } } }