introduce bitloops
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package puzzle;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
import lombok.experimental.Delegate;
|
||||
import lombok.val;
|
||||
@@ -339,13 +340,18 @@ public record Export() {
|
||||
|
||||
@Getter
|
||||
@Accessors(fluent = true)
|
||||
@NoArgsConstructor
|
||||
static final class IntListDTO {
|
||||
|
||||
int[] data = new int[8];
|
||||
int size = 0;
|
||||
public IntListDTO(int size) {
|
||||
data = new int[size];
|
||||
}
|
||||
void add(int v) {
|
||||
if (size >= data.length) data = Arrays.copyOf(data, data.length * 2);
|
||||
data[size++] = v;
|
||||
}
|
||||
int[] toArray() { return Arrays.copyOf(data, size); }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -388,7 +388,8 @@ public class SwedishGenerator {
|
||||
var r = rng.nextFloat();
|
||||
//int idxInArray = rng.biasedIndexPow3(L - 1);
|
||||
var arrIndex = (int) (r * r * r * (L - 1));
|
||||
var w = entry.words[idxs[arrIndex]];
|
||||
var shardIdx = idxs[arrIndex];
|
||||
var w = entry.words[shardIdx];
|
||||
var lemIdx = Lemma.unpackIndex(w);
|
||||
if (Bit1029.get(used, lemIdx)) continue;
|
||||
low = glo;
|
||||
@@ -397,7 +398,7 @@ public class SwedishGenerator {
|
||||
|
||||
Bit1029.set(used, lemIdx);
|
||||
s.assign.w = w;
|
||||
s.assign.shardIdx = arrIndex;
|
||||
s.assign.shardIdx = shardIdx;
|
||||
if (backtrack(depth + 1)) return true;
|
||||
s.assign.w = X;
|
||||
Bit1029.clear(used, lemIdx);
|
||||
|
||||
Reference in New Issue
Block a user