introduce bitloops
This commit is contained in:
@@ -300,12 +300,16 @@ public record Export() {
|
||||
var index = new DictEntryDTO[SwedishGenerator.MAX_WORD_LENGTH_PLUS_ONE];
|
||||
Arrays.setAll(index, DictEntryDTO::new);
|
||||
for (var lemma : wordz) {
|
||||
var L = Lemma.length(lemma);
|
||||
|
||||
var entry = index[L];
|
||||
var idx = entry.words().size();
|
||||
var L = Lemma.unpackSize(lemma) + 1;//Lemma.unpackSize(lemma) + 2;
|
||||
val entry = index[L];
|
||||
val idx = entry.words().size();
|
||||
val pos = entry.pos();
|
||||
entry.words().add(lemma);
|
||||
for (var i = 0; i < L; i++) entry.pos()[i][Lemma.byteAt(lemma, i) - 1].add(idx);
|
||||
int i = 0;
|
||||
for (long w = lemma & Lemma.LETTER_MASK; w != 0; w >>>= 5, i++) {
|
||||
pos[i][(int) ((w & 31) - 1)].add(idx);
|
||||
}
|
||||
// for (i = 0; i < L; i++) entry.pos()[i][Lemma.byteAt(lemma, i) - 1].add(idx);
|
||||
}
|
||||
for (int i = SwedishGenerator.MIN_LEN; i < index.length; i++) if (index[i].words().size() <= 0) throw new RuntimeException("No words for length " + i);
|
||||
return new Dict(Arrays.stream(index).map(i -> {
|
||||
|
||||
Reference in New Issue
Block a user