@Override public void decode(Input reader, String text, String key, int count, int[] propertySetMapping, IntArrayList psets, Int2ReferenceOpenHashMap<? extends StoreRef> refs) { int numEntries = reader.readVarInt(true); StringRef[] entries = new StringRef[numEntries]; //Read dictionary /*int[] lens = new int[numEntries]; for (int i = 0; i < numEntries; i++) lens[i] = reader.readPosVarInt();*/ for(int i = 0; i < numEntries; i++) entries[i] = new StringRef(reader.readString());//reader.readRawString(lens[i])); IntListIterator noderange = psets.iterator(); while (noderange.hasNext()) { int psetid = noderange.nextInt(); final int start = propertySetMapping[psetid]; final int end = propertySetMapping[psetid + 1]; for (int i = start; i < end; i++) { refs.get(i).get().putProperty(key, entries[reader.readVarInt(true)]); } } }
@Override public void decode(Input reader, String text, String key, int count, int[] propertySetMapping, IntArrayList psets, Int2ReferenceOpenHashMap<? extends StoreRef> refs) { int numEntries = reader.readVarInt(true); //Read dictionary //int len = reader.readVarInt(true); StringRef[] entries = new StringRef[numEntries]; for(int i = 0; i < numEntries; i++) entries[i] = new StringRef(reader.readString()); IntListIterator noderange = psets.iterator(); while (noderange.hasNext()) { int psetid = noderange.nextInt(); final int start = propertySetMapping[psetid]; final int end = propertySetMapping[psetid + 1]; for (int i = start; i < end; i++) { refs.get(i).get().putProperty(key, entries[reader.readVarInt(true)]); } } }
@Override public Iterator<String> iterator() { return new Iterator<String>() { private final IntListIterator valuesIt = values.iterator(); @Override public boolean hasNext() { return valuesIt.hasNext(); } @Override public String next() { return lookupTable.get(valuesIt.next()); } }; }
@Override public void decode(Input reader, String text, String key, int count, int[] propertySetMapping, IntArrayList psets, Int2ReferenceOpenHashMap<? extends StoreRef> refs) { IntListIterator noderange = psets.iterator(); int k = 0; while (noderange.hasNext()) { int psetid = noderange.nextInt(); final int start = propertySetMapping[psetid]; final int end = propertySetMapping[psetid + 1]; for (int i = start; i < end; i++, k++) { refs.get(i).get().putProperty(key, reader.readString()); } } }
@Override public void decode(Input reader, String text, String key, int count, int[] propertySetMapping, IntArrayList psets, Int2ReferenceOpenHashMap<? extends StoreRef> refs) { //int len = reader.readPosVarInt(); IntListIterator noderange = psets.iterator(); while (noderange.hasNext()) { int psetid = noderange.nextInt(); final int start = propertySetMapping[psetid]; final int end = propertySetMapping[psetid + 1]; for (int i = start; i < end; i++) { refs.get(i).get().putProperty(key, reader.readString()); } } }
/** Returns the modulo-2 scalar product of the two provided bit vectors. * * @return the modulo-2 scalar product of {@code e} and {code f}. */ public static long scalarProduct(final Modulo2Equation e, long[] solution) { long sum = 0; for(final IntListIterator iterator = e.variables.iterator(); iterator.hasNext();) sum ^= solution[iterator.nextInt()]; return sum; }
public boolean check(final long solution[]) { for(final Modulo2Equation equation: equations) { int sum = 0; for(final IntListIterator i = equation.variables.iterator(); i.hasNext();) { final int e = i.nextInt(); sum ^= solution[e]; } if (equation.c != sum) { System.err.println(equation + " " + Arrays.toString(solution)); return false; } } return true; }