Mercurial > hg > Database > Alice
view src/alice/test/codesegment/local/bitonicsort/OddPhase.java @ 213:3f20b6401823 working
remove error form bitonic
author | one |
---|---|
date | Wed, 27 Mar 2013 17:56:08 +0900 |
parents | b5daccf36104 |
children | 21bd8af1cf26 |
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 OddPhase extends CodeSegment{ private Receiver info0 = ids.create(CommandType.PEEK); // range private Receiver info1; // Array1 private Receiver info2; // Array2 private Receiver info3 = ids.create(CommandType.PEEK); // block_num //private Receiver info4 = ids.create(CommandType.PEEK); // last_block_num private Receiver info5 = ids.create(CommandType.PEEK); // sort_count private Receiver info6 = ids.create(CommandType.TAKE); // count public OddPhase(String key0,String key1,String key2,int index,String key6){ info0.setKey(key0); info1 = ids.create(CommandType.TAKE); info1.setKey(key1,index); info2 = ids.create(CommandType.TAKE); info2.setKey(key2,index); info3.setKey("block_num"); info5.setKey("sort_count"); info6.setKey(key6); } @Override public void run() { RangeInfo info = info0.asClass(info0, RangeInfo.class); int sort_count = info5.asInteger(info5); int count = info6.asInteger(info6); //System.out.println("count is " +count); int i = info.range; if (count<sort_count){ DataList list1 = info1.asClass(info1, DataList.class); DataList list2 = info2.asClass(info1, DataList.class); Sort.quickSort(list1,0,list1.table.length-1); Sort.quickSort(list2,0,list2.table.length-1); DataList.merge(list1,list2); ods.flip(info1); ods.flip(info2); if (i+2 < SetInfo.array.length){ String f = (count%2==1) ? SetInfo.array[i] : SetInfo.array[i+1]; String b = (count%2==1) ? SetInfo.array[i+1] : SetInfo.array[i+2]; new OddPhase(info0.key, f, b,count,info6.key); } } else { ods.put(SetInfo.result[i*2], info1); ods.put(SetInfo.result[i*2+1], info2); } ods.update(info6.key, count+1); } }