introduce bitloops

This commit is contained in:
mike
2026-01-21 07:03:41 +01:00
parent 1e13d39153
commit a659bd5162
4 changed files with 25 additions and 39 deletions

View File

@@ -18,11 +18,13 @@ public final class Masker {
public static final long[] PATH_HI = Neighbors9x8.PATH_HI;
public static final long MASK_LO = -1L;
public static final long MASK_HI = Neighbors9x8.MASK_HI;//(1L << (SIZE - 64)) - 1;
public static final int MIN_LEN = Neighbors9x8.MIN_LEN;//Config.MIN_LEN;
public static final int STACK_SIZE = 128;
public static final int C = Neighbors9x8.C;
public static final int R = Neighbors9x8.R;
public static final double SIZED = Neighbors9x8.SIZED;// ~18
public static final int MIN_LEN = Neighbors9x8.MIN_LEN;//Config.MIN_LEN;
public static final int STACK_SIZE = 128;
public static final int C = Neighbors9x8.C;
public static final int R = Neighbors9x8.R;
public static final double SIZED = Neighbors9x8.SIZED;// ~18
private static final long[] NBR_LO = Neighbors9x8.NBR_LO;
private static final long[] NBR_HI = Neighbors9x8.NBR_HI;
private final Rng rng;
private final int[] stack;
private final Clues cache;
@@ -31,10 +33,8 @@ public final class Masker {
private final long[] activeSHi = new long[Neighbors9x8.SIZE];
private final long[] adjLo = new long[Neighbors9x8.SIZE];
private final long[] adjHi = new long[Neighbors9x8.SIZE];
private final int[] rCount = new int[8];
private final int[] cCount = new int[9];
private static final long[] NBR_LO = Neighbors9x8.NBR_LO;
private static final long[] NBR_HI = Neighbors9x8.NBR_HI;
private final int[] rCount = new int[Neighbors9x8.R];
private final int[] cCount = new int[Neighbors9x8.C];
public Masker(Rng rng, int[] stack, Clues cache) {
this.rng = rng;
@@ -94,10 +94,10 @@ public final class Masker {
}
}
public static final int[][] MUTATE_RI = new int[SwedishGenerator.SIZE][625];
public static final int[][] MUTATE_RI = new int[Neighbors9x8.SIZE][625];
static {
for (var i = 0; i < SwedishGenerator.SIZE; i++) {
for (var i = 0; i < Neighbors9x8.SIZE; i++) {
var k = 0;
for (var dr1 = -2; dr1 <= 2; dr1++)
for (var dr2 = -2; dr2 <= 2; dr2++)