chiark / gitweb /
Update changelog for 20170923.ff218728-0+iwj2~3.gbpc58e0c release
[sgt-puzzles.git] / latin.h
diff --git a/latin.h b/latin.h
index a1b5873c2c3a02ed43e258d25a5bf3ee6e6e4fbc..e13050e9a8c074d9b5b279d30ce6fc45b13b5113 100644 (file)
--- a/latin.h
+++ b/latin.h
@@ -30,14 +30,6 @@ struct latin_solver {
 #define gridpos(x,y) ((y)*solver->o+(x))
 #define grid(x,y) (solver->grid[gridpos(x,y)])
 
-/* A solo solver using this code would need these defined. See solo.c. */
-#ifndef YTRANS
-#define YTRANS(y) (y)
-#endif
-#ifndef YUNTRANS
-#define YUNTRANS(y) (y)
-#endif
-
 
 /* --- Solver individual strategies --- */
 
@@ -47,7 +39,7 @@ void latin_solver_place(struct latin_solver *solver, int x, int y, int n);
 /* Positional elimination. */
 int latin_solver_elim(struct latin_solver *solver, int start, int step
 #ifdef STANDALONE_SOLVER
-                      , char *fmt, ...
+                      , const char *fmt, ...
 #endif
                       );
 
@@ -57,7 +49,7 @@ int latin_solver_set(struct latin_solver *solver,
                      struct latin_solver_scratch *scratch,
                      int start, int step1, int step2
 #ifdef STANDALONE_SOLVER
-                     , char *fmt, ...
+                     , const char *fmt, ...
 #endif
                      );
 
@@ -120,6 +112,9 @@ void latin_solver_debug(unsigned char *cube, int o);
 
 digit *latin_generate(int o, random_state *rs);
 
+/* The order of the latin rectangle is max(w,h). */
+digit *latin_generate_rect(int w, int h, random_state *rs);
+
 int latin_check(digit *sq, int order); /* !0 => not a latin square */
 
 void latin_debug(digit *sq, int order);