introduce bitloops

This commit is contained in:
mike
2026-01-22 18:47:04 +01:00
parent a659bd5162
commit 2295a7d97c
71 changed files with 254 additions and 205151 deletions

View File

@@ -1,11 +1,13 @@
package puzzle;
import module java.base;
import anno.DictGen;
import anno.Dictionaries;
import lombok.val;
import org.junit.jupiter.api.Test;
import puzzle.Export.Clue;
import puzzle.Export.Clued;
import puzzle.Export.Gridded;
import puzzle.Export.Signa;
import puzzle.Export.Puzzle;
import puzzle.Masker.Clues;
import puzzle.SwedishGenerator.Rng;
import puzzle.SwedishGenerator.Slotinfo;
@@ -13,9 +15,24 @@ import puzzle.SwedishGenerator.Slotinfo;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static precomp.Const9x8.Cell.*;
import static puzzle.SwedishGenerator.fillMask;
import static puzzle.dict800.DictData.DICT800;
import static puzzle.dict900.DictData.DICT900;
import static puzzle.dict800.DictData800.DICT800;
import static puzzle.dict900.DictData900.DICT900;
@Dictionaries({ @DictGen(
packageName = "puzzle.dict900",
className = "DictData900",
scv = "/home/mike/dev/puzzle-generator/nl_score_hints_v4.csv",
simpleMax = 900,
minLen = 2,
maxLen = 8
), @DictGen(
packageName = "puzzle.dict800",
className = "DictData800",
scv = "/home/mike/dev/puzzle-generator/nl_score_hints_v4.csv",
simpleMax = 800,
minLen = 2,
maxLen = 8
) })
public class PerformanceTest {
void main() {
@@ -73,7 +90,7 @@ public class PerformanceTest {
void testIncrementalComplexity() {
// Use the complex mask from Main.java
var mask = Clued.of(
var mask = Signa.of(
r0c0d1, r0c5d0, r0c6d0, r0c7d0, r0c8d0,
r1c0d1,
r2c0d0, r2c1d0, r2c3d0, r2c4d1,
@@ -82,7 +99,7 @@ public class PerformanceTest {
r5c2d2, r5c4d1,
r6c2d1,
r7c0d2, r7c1d2, r7c2d1, r7c7d2, r7c8d2
);
);
val allSlots = Masker.slots(mask.c(), DICT900.index());
//mask.toGrid()
System.out.println("[DEBUG_LOG] \n--- Incremental Complexity Test ---");
@@ -103,7 +120,7 @@ public class PerformanceTest {
val rng = new Rng(42);
// A single horizontal slot at (0,0)
val mask = Clued.of(r0c0d1);
val mask = Signa.of(r0c0d1);
val slots = Masker.slots(mask.c(), DICT800.index());
System.out.println("[DEBUG_LOG] \n--- Single Slot Resolution ---");
@@ -160,7 +177,7 @@ public class PerformanceTest {
var slotChar = dir.slotChar;
display[cr][cc] = clueChar;
Gridded.cellWalk((byte) slot.key(), slot.lo(), slot.hi()).forEach(idx -> {
Puzzle.cellWalk((byte) slot.key(), slot.lo(), slot.hi()).forEach(idx -> {
var r = Masker.IT[idx].r();
var c = Masker.IT[idx].c();
if (display[r][c] == ' ' || (display[r][c] >= 'A' && display[r][c] <= 'D')) {