Ticket #31: signed_char_7_7.2

File signed_char_7_7.2, 31.6 KB (added by arend, 4 years ago)

More consistent try to convert influence code + callers + combination code + callers to signed char

Line 
1Index: engine/combination.c
2===================================================================
3RCS file: /cvsroot/gnugo/gnugo/engine/combination.c,v
4retrieving revision 1.54
5diff -u -p -r1.54 combination.c
6--- engine/combination.c        12 Jun 2005 09:34:13 -0000      1.54
7+++ engine/combination.c        7 Oct 2005 06:49:13 -0000
8@@ -47,7 +47,7 @@ combinations(int color)
9 {
10   int save_verbose;
11   int attack_point;
12-  char defense_points[BOARDMAX];
13+  signed char defense_points[BOARDMAX];
14   int other = OTHER_COLOR(color);
15   int aa_val;
16 
17@@ -211,29 +211,31 @@ struct aa_move {
18 static int aa_status[BOARDMAX]; /* ALIVE, DEAD or CRITICAL */
19 static int forbidden[BOARDMAX];
20 static int aa_values[BOARDMAX];
21-static void compute_aa_status(int color, const char safe_stones[BOARDMAX]);
22+static void compute_aa_status(int color,
23+                             const signed char safe_stones[BOARDMAX]);
24 static void compute_aa_values(int color);
25 static int get_aa_status(int pos);
26 static int do_atari_atari(int color, int *attack_point, int *defense_point,
27-                         char all_potential_defenses[BOARDMAX],
28+                         signed char all_potential_defenses[BOARDMAX],
29                          int last_friendly, int save_verbose, int minsize,
30-                         char goal[BOARDMAX]);
31+                         signed char goal[BOARDMAX]);
32 static int atari_atari_succeeded(int color, int *attack_point,
33                                 int *defense_point, int last_friendly,
34                                 int save_verbose, int minsize);
35 static void atari_atari_find_attack_moves(int color, int minsize,
36                                          struct aa_move attacks[AA_MAX_MOVES],
37-                                         char goal[BOARDMAX]);
38+                                         signed char goal[BOARDMAX]);
39 static void atari_atari_attack_patterns(int color, int minsize,
40                                        struct aa_move attacks[AA_MAX_MOVES],
41-                                       char goal[BOARDMAX]);
42+                                       signed char goal[BOARDMAX]);
43 static void atari_atari_attack_callback(int anchor, int color,
44                                        struct pattern *pattern,
45                                        int ll, void *data);
46 static int atari_atari_find_defense_moves(int targets[AA_MAX_TARGETS_PER_MOVE],
47                                          int moves[AA_MAX_MOVES]);
48 static int get_aa_value(int str);
49-static int update_aa_goal(char goal[BOARDMAX], char new_goal[BOARDMAX],
50+static int update_aa_goal(signed char goal[BOARDMAX],
51+                         signed char new_goal[BOARDMAX],
52                          int apos, int color);
53 static void aa_init_moves(struct aa_move attacks[AA_MAX_MOVES]);
54 static void aa_add_move(struct aa_move attacks[AA_MAX_MOVES],
55@@ -245,14 +247,14 @@ static void aa_sort_moves(struct aa_move
56 /* Set to 1 if you want verbose traces from this function. */
57 
58 int
59-atari_atari(int color, int *attack_move, char defense_moves[BOARDMAX],
60+atari_atari(int color, int *attack_move, signed char defense_moves[BOARDMAX],
61            int save_verbose)
62 {
63   int other = OTHER_COLOR(color);
64   int apos;
65   int dpos;
66   int aa_val;
67-  char saved_defense_moves[BOARDMAX];
68+  signed char saved_defense_moves[BOARDMAX];
69 
70   /* Collect worm statuses of opponent's worms. We need to
71    * know this because we only want to report unexpected
72@@ -355,11 +357,11 @@ atari_atari(int color, int *attack_move,
73  */
74 int
75 atari_atari_confirm_safety(int color, int move, int *defense, int minsize,
76-                          const char saved_dragons[BOARDMAX],
77-                          const char saved_worms[BOARDMAX])
78+                          const signed char saved_dragons[BOARDMAX],
79+                          const signed char saved_worms[BOARDMAX])
80 {
81-  char safe_stones[BOARDMAX];
82-  char defense_moves[BOARDMAX];
83+  signed char safe_stones[BOARDMAX];
84+  signed char defense_moves[BOARDMAX];
85   int pos;
86   int blunder_size;
87 
88@@ -386,14 +388,15 @@ atari_atari_confirm_safety(int color, in
89  * safe_stones marks which of our stones are supposedly safe after this move.
90  */
91 int
92-atari_atari_blunder_size(int color, int move, char defense_moves[BOARDMAX],
93-                        const char safe_stones[BOARDMAX])
94+atari_atari_blunder_size(int color, int move,
95+                        signed char defense_moves[BOARDMAX],
96+                        const signed char safe_stones[BOARDMAX])
97 {
98   int apos;
99   int defense_point = NO_MOVE;
100   int aa_val, after_aa_val;
101   int other = OTHER_COLOR(color);
102-  char defense_points[BOARDMAX];
103+  signed char defense_points[BOARDMAX];
104   int last_forbidden = NO_MOVE;
105 
106   /* If aa_depth is too small, we can't see any combination attacks,
107@@ -518,7 +521,7 @@ atari_atari_blunder_size(int color, int
108  */
109 
110 static void
111-compute_aa_status(int color, const char safe_stones[BOARDMAX])
112+compute_aa_status(int color, const signed char safe_stones[BOARDMAX])
113 {
114   int other = OTHER_COLOR(color);
115   int pos;
116@@ -668,8 +671,8 @@ get_aa_status(int pos)
117 
118 static int
119 do_atari_atari(int color, int *attack_point, int *defense_point,
120-              char all_potential_defenses[BOARDMAX], int last_friendly,
121-              int save_verbose, int minsize, char goal[BOARDMAX])
122+              signed char all_potential_defenses[BOARDMAX], int last_friendly,
123+              int save_verbose, int minsize, signed char goal[BOARDMAX])
124 {
125   int other = OTHER_COLOR(color);
126   int k;
127@@ -789,7 +792,7 @@ do_atari_atari(int color, int *attack_po
128 
129       if (trymove(bpos, other, "do_atari_atari-B", str)) {
130        int new_aa_val;
131-       char new_goal[BOARDMAX];
132+       signed char new_goal[BOARDMAX];
133        /* These moves may have been irrelevant for later
134         * reading, so in order to avoid horizon problems, we
135         * need to temporarily increase the depth values.
136@@ -928,7 +931,7 @@ atari_atari_succeeded(int color, int *at
137 static void
138 atari_atari_find_attack_moves(int color, int minsize,
139                              struct aa_move attacks[AA_MAX_MOVES],
140-                             char goal[BOARDMAX])
141+                             signed char goal[BOARDMAX])
142 {
143   int k;
144   int r;
145@@ -965,9 +968,9 @@ static int conditional_attack_point[BOAR
146 static void
147 atari_atari_attack_patterns(int color, int minsize,
148                            struct aa_move attacks[AA_MAX_MOVES],
149-                           char goal[BOARDMAX])
150+                           signed char goal[BOARDMAX])
151 {
152-  char revised_goal[BOARDMAX];
153+  signed char revised_goal[BOARDMAX];
154   current_minsize = minsize;
155   current_attacks = attacks;
156   memset(conditional_attack_point, 0, sizeof(conditional_attack_point));
157@@ -1294,8 +1297,8 @@ get_aa_value(int str)
158     } while (0);
159 
160 static int
161-update_aa_goal(char goal[BOARDMAX], char new_goal[BOARDMAX], int apos,
162-              int color)
163+update_aa_goal(signed char goal[BOARDMAX], signed char new_goal[BOARDMAX],
164+              int apos, int color)
165 {
166   int other = OTHER_COLOR(color);
167   int dists[BOARDMAX];
168Index: engine/dragon.c
169===================================================================
170RCS file: /cvsroot/gnugo/gnugo/engine/dragon.c,v
171retrieving revision 1.148
172diff -u -p -r1.148 dragon.c
173--- engine/dragon.c     12 Jun 2005 09:34:13 -0000      1.148
174+++ engine/dragon.c     7 Oct 2005 06:49:14 -0000
175@@ -1090,7 +1090,7 @@ dragon_looks_inessential(int origin)
176  * owl code thinks so.
177  */
178 static void
179-get_alive_stones(int color, char safe_stones[BOARDMAX])
180+get_alive_stones(int color, signed char safe_stones[BOARDMAX])
181 {
182   int d;
183   get_lively_stones(color, safe_stones);
184@@ -1154,7 +1154,8 @@ identify_thrashing_dragons()
185          DEBUG(DEBUG_DRAGONS,
186                "neighbor at distance %d of thrashing dragon found at %1m\n",
187                dist + 1, DRAGON(d).origin);
188-         mark_dragon(DRAGON(d).origin, thrashing_stone, (char)(dist + 1));
189+         mark_dragon(DRAGON(d).origin, thrashing_stone,
190+                     (signed char)(dist + 1));
191        }
192       }
193     }
194@@ -1163,7 +1164,7 @@ identify_thrashing_dragons()
195 
196 
197 static void
198-set_dragon_strengths(const char safe_stones[BOARDMAX],
199+set_dragon_strengths(const signed char safe_stones[BOARDMAX],
200                     float strength[BOARDMAX])
201 {
202   int ii;
203@@ -1183,7 +1184,7 @@ set_dragon_strengths(const char safe_sto
204  * everything else unchanged.
205  */
206 void
207-mark_inessential_stones(int color, char safe_stones[BOARDMAX])
208+mark_inessential_stones(int color, signed char safe_stones[BOARDMAX])
209 {
210   int ii;
211   for (ii = BOARDMIN; ii < BOARDMAX; ii++)
212@@ -1202,7 +1203,7 @@ mark_inessential_stones(int color, char
213 }
214 
215 void
216-set_strength_data(int color, char safe_stones[BOARDMAX],
217+set_strength_data(int color, signed char safe_stones[BOARDMAX],
218                  float strength[BOARDMAX])
219 {
220   gg_assert(IS_STONE(color) || color == EMPTY);
221@@ -1216,7 +1217,7 @@ set_strength_data(int color, char safe_s
222 void
223 compute_dragon_influence()
224 {
225-  char safe_stones[BOARDMAX];
226+  signed char safe_stones[BOARDMAX];
227   float strength[BOARDMAX];
228 
229   set_strength_data(BLACK, safe_stones, strength);
230@@ -1849,7 +1850,7 @@ compute_crude_status(int pos)
231  */
232 int
233 dragon_escape(char goal[BOARDMAX], int color,
234-             char escape_value[BOARDMAX])
235+             signed char escape_value[BOARDMAX])
236 {
237   int ii;
238   int k;
239@@ -2004,8 +2005,8 @@ compute_escape(int pos, int dragon_statu
240 {
241   int ii;
242   char goal[BOARDMAX];
243-  char escape_value[BOARDMAX];
244-  char safe_stones[BOARDMAX];
245+  signed char escape_value[BOARDMAX];
246+  signed char safe_stones[BOARDMAX];
247 
248   ASSERT1(IS_STONE(board[pos]), pos);
249 
250@@ -2284,12 +2285,12 @@ are_neighbor_dragons(int d1, int d2)
251 
252 /* Mark the stones of a dragon. */
253 void
254-mark_dragon(int pos, char mx[BOARDMAX], char mark)
255+mark_dragon(int pos, signed char mx[BOARDMAX], signed char mark)
256 {
257   int w;
258   for (w = first_worm_in_dragon(dragon[pos].origin); w != NO_MOVE;
259        w = next_worm_in_dragon(w))
260-    mark_string(w, mx, mark);
261+    signed_mark_string(w, mx, mark);
262 }
263 
264 
265Index: engine/genmove.c
266===================================================================
267RCS file: /cvsroot/gnugo/gnugo/engine/genmove.c,v
268retrieving revision 1.105
269diff -u -p -r1.105 genmove.c
270--- engine/genmove.c    12 Jun 2005 09:34:14 -0000      1.105
271+++ engine/genmove.c    7 Oct 2005 06:49:14 -0000
272@@ -632,7 +632,7 @@ static int
273 revise_thrashing_dragon(int color, float our_score, float advantage)
274 {
275   int pos;
276-  char safe_stones[BOARDMAX];
277+  signed char safe_stones[BOARDMAX];
278   float strength[BOARDMAX];
279 
280   /* Trust the owl code's opinion if we are behind. */
281@@ -701,7 +701,7 @@ find_mirror_move(int *move, int color)
282 static void
283 compute_scores()
284 {
285-  char safe_stones[BOARDMAX];
286+  signed char safe_stones[BOARDMAX];
287   float strength[BOARDMAX];
288 
289   set_strength_data(WHITE, safe_stones, strength);
290Index: engine/globals.c
291===================================================================
292RCS file: /cvsroot/gnugo/gnugo/engine/globals.c,v
293retrieving revision 1.74
294diff -u -p -r1.74 globals.c
295--- engine/globals.c    26 Sep 2005 14:50:14 -0000      1.74
296+++ engine/globals.c    7 Oct 2005 06:49:14 -0000
297@@ -33,7 +33,7 @@
298  */
299 
300 int thrashing_dragon = NO_MOVE; /* Dead opponent's dragon trying to live. */
301-char thrashing_stone[BOARDMAX]; /* All thrashing stones. */
302+signed char thrashing_stone[BOARDMAX]; /* All thrashing stones. */
303 
304 int hashflags = HASH_DEFAULT;
305 
306Index: engine/influence.c
307===================================================================
308RCS file: /cvsroot/gnugo/gnugo/engine/influence.c,v
309retrieving revision 1.110
310diff -u -p -r1.110 influence.c
311--- engine/influence.c  12 Jun 2005 09:34:14 -0000      1.110
312+++ engine/influence.c  7 Oct 2005 06:49:15 -0000
313@@ -376,7 +376,7 @@ accumulate_influence(struct influence_da
314 
315 static void
316 init_influence(struct influence_data *q, int color,
317-              const char safe_stones[BOARDMAX],
318+              const signed char safe_stones[BOARDMAX],
319               const float strength[BOARDMAX])
320 {
321   int ii;
322@@ -1148,7 +1148,7 @@ check_double_block(int color, int pos, c
323  */
324 static void
325 remove_double_blocks(struct influence_data *q,
326-                    const char inhibited_sources[BOARDMAX])
327+                    const signed char inhibited_sources[BOARDMAX])
328 {
329   int ii;
330   float *strength = ((q->color_to_move == WHITE) ? q->white_strength :
331@@ -1184,8 +1184,8 @@ remove_double_blocks(struct influence_da
332  * compute_influence and compute_escape_influence.
333  */
334 static void
335-do_compute_influence(int color, const char safe_stones[BOARDMAX],
336-                    const char inhibited_sources[BOARDMAX],
337+do_compute_influence(int color, const signed char safe_stones[BOARDMAX],
338+                    const signed char inhibited_sources[BOARDMAX],
339                     const float strength[BOARDMAX], struct influence_data *q,
340                     int move, const char *trace_message)
341 {
342@@ -1240,7 +1240,7 @@ do_compute_influence(int color, const ch
343  */
344 
345 void
346-compute_influence(int color, const char safe_stones[BOARDMAX],
347+compute_influence(int color, const signed char safe_stones[BOARDMAX],
348                  const float strength[BOARDMAX], struct influence_data *q,
349                  int move, const char *trace_message)
350 {
351@@ -1584,7 +1584,7 @@ segment_region(struct influence_data *q,
352               int type, int segmentation[BOARDMAX])
353 {
354   int ii;
355-  static char marked[BOARDMAX];
356+  static signed char marked[BOARDMAX];
357 
358   /* Reset the markings. */
359   memset(marked, 0, sizeof(marked));
360@@ -1820,7 +1820,7 @@ compute_followup_influence(const struct
361                           int move, const char *trace_message)
362 {
363   int ii;
364-  char goal[BOARDMAX];
365+  signed char goal[BOARDMAX];
366   /* This is the color that will get a followup value. */
367   int color = OTHER_COLOR(base->color_to_move);
368   int save_debug = debug;
369@@ -1881,10 +1881,10 @@ compute_followup_influence(const struct
370  */
371 
372 void
373-compute_escape_influence(int color, const char safe_stones[BOARDMAX],
374-                        const char goal[BOARDMAX],
375+compute_escape_influence(int color, const signed char safe_stones[BOARDMAX],
376+                        const signed char goal[BOARDMAX],
377                         const float strength[BOARDMAX],
378-                        char escape_value[BOARDMAX])
379+                        signed char escape_value[BOARDMAX])
380 {
381   int k;
382   int ii;
383@@ -1895,7 +1895,7 @@ compute_escape_influence(int color, cons
384    * states. Better check for these, too.
385    */
386   static int cached_board[BOARDMAX];
387-  static char escape_values[BOARDMAX][2];
388+  static signed char escape_values[BOARDMAX][2];
389   static int active_caches[2] = {0, 0};
390 
391   int cache_number = (color == WHITE);
392Index: engine/influence.h
393===================================================================
394RCS file: /cvsroot/gnugo/gnugo/engine/influence.h,v
395retrieving revision 1.24
396diff -u -p -r1.24 influence.h
397--- engine/influence.h  12 Jun 2005 09:34:14 -0000      1.24
398+++ engine/influence.h  7 Oct 2005 06:49:15 -0000
399@@ -93,7 +93,7 @@ struct intrusion_data
400 
401 struct influence_data
402 {
403-  char safe[BOARDMAX];
404+  signed char safe[BOARDMAX];
405 
406   float white_influence[BOARDMAX];     /* Accumulated influence. */
407   float black_influence[BOARDMAX];     /* Accumulated influence. */
408Index: engine/liberty.h
409===================================================================
410RCS file: /cvsroot/gnugo/gnugo/engine/liberty.h,v
411retrieving revision 1.239
412diff -u -p -r1.239 liberty.h
413--- engine/liberty.h    28 Sep 2005 21:52:04 -0000      1.239
414+++ engine/liberty.h    7 Oct 2005 06:49:15 -0000
415@@ -292,12 +292,12 @@ void estimate_lunch_eye_value(int lunch,
416 int owl_topological_eye(int pos, int color);
417 int vital_chain(int pos);
418 int confirm_safety(int move, int color, int *defense_point,
419-                  char safe_stones[BOARDMAX]);
420+                  signed char safe_stones[BOARDMAX]);
421 int dragon_weak(int pos);
422 float dragon_weakness(int pos, int ignore_dead_dragons);
423 int size_of_biggest_critical_dragon(void);
424 float blunder_size(int move, int color, int *defense_point,
425-                  char safe_stones[BOARDMAX]);
426+                  signed char safe_stones[BOARDMAX]);
427 void set_depth_values(int level, int report_levels);
428 void modify_depth_values(int n);
429 void increase_depth_values(void);
430@@ -311,7 +311,8 @@ int does_secure(int color, int move, int
431 
432 void compute_new_dragons(int dragon_origins[BOARDMAX]);
433 void join_dragons(int d1, int d2);
434-int dragon_escape(char goal[BOARDMAX], int color, char escape_value[BOARDMAX]);
435+int dragon_escape(char goal[BOARDMAX], int color,
436+                 signed char escape_value[BOARDMAX]);
437 void compute_refined_dragon_weaknesses(void);
438 
439 struct eyevalue;
440@@ -321,16 +322,16 @@ float crude_dragon_weakness(int safety,
441 
442 int is_same_dragon(int d1, int d2);
443 int are_neighbor_dragons(int d1, int d2);
444-void mark_dragon(int pos, char mx[BOARDMAX], char mark);
445+void mark_dragon(int pos, signed char mx[BOARDMAX], signed char mark);
446 int first_worm_in_dragon(int d);
447 int next_worm_in_dragon(int w);
448 int lively_dragon_exists(int color);
449 void compute_dragon_influence(void);
450-void set_strength_data(int color, char safe_stones[BOARDMAX],
451+void set_strength_data(int color, signed char safe_stones[BOARDMAX],
452                       float strength[BOARDMAX]);
453-void mark_inessential_stones(int color, char safe_stones[BOARDMAX]);
454+void mark_inessential_stones(int color, signed char safe_stones[BOARDMAX]);
455 
456-void get_lively_stones(int color, char safe_stones[BOARDMAX]);
457+void get_lively_stones(int color, signed char safe_stones[BOARDMAX]);
458 int is_same_worm(int w1, int w2);
459 int is_worm_origin(int w, int pos);
460 void propagate_worm(int pos);
461@@ -417,12 +418,12 @@ int is_known_good_attack_threat(int move
462 
463 int get_attack_threats(int pos, int max_strings, int strings[]);
464 int get_defense_threats(int pos, int max_strings, int strings[]);
465-void get_saved_worms(int pos, char saved[BOARDMAX]);
466-void get_saved_dragons(int pos, char saved[BOARDMAX]);
467+void get_saved_worms(int pos, signed char saved[BOARDMAX]);
468+void get_saved_dragons(int pos, signed char saved[BOARDMAX]);
469 void mark_safe_stones(int color, int move_pos,
470-                     const char saved_dragons[BOARDMAX],
471-                     const char saved_worms[BOARDMAX],
472-                     char safe_stones[BOARDMAX]);
473+                     const signed char saved_dragons[BOARDMAX],
474+                     const signed char saved_worms[BOARDMAX],
475+                     signed char safe_stones[BOARDMAX]);
476 
477 
478 int owl_lively(int pos);
479@@ -468,14 +469,16 @@ void endgame(int color);
480 void endgame_shapes(int color);
481 
482 void combinations(int color);
483-int atari_atari(int color, int *attack_move, char defense_moves[BOARDMAX],
484+int atari_atari(int color, int *attack_move,
485+               signed char defense_moves[BOARDMAX],
486                int save_verbose);
487 int atari_atari_confirm_safety(int color, int tpos, int *move, int minsize,
488-                              const char saved_dragons[BOARDMAX],
489-                              const char saved_worms[BOARDMAX]);
490+                              const signed char saved_dragons[BOARDMAX],
491+                              const signed char saved_worms[BOARDMAX]);
492 
493-int atari_atari_blunder_size(int color, int tpos, char defense_moves[BOARDMAX],
494-                            const char safe_stones[BOARDMAX]);
495+int atari_atari_blunder_size(int color, int tpos,
496+                            signed char defense_moves[BOARDMAX],
497+                            const signed char safe_stones[BOARDMAX]);
498 
499 int review_move_reasons(int *move, float *value, int color,
500                        float pure_threat_value, float our_score,
501@@ -534,7 +537,7 @@ int semeai_move_reason_known(int move, i
502 int does_attack(int move, int str);
503 int does_defend(int move, int str);
504 int double_atari(int move, int color, float *value,
505-                char safe_stones[BOARDMAX]);
506+                signed char safe_stones[BOARDMAX]);
507 int send_two_return_one(int move, int color);
508 int play_attack_defend_n(int color, int do_attack, int num_moves, ...);
509 int play_attack_defend2_n(int color, int do_attack, int num_moves, ...);
510@@ -602,17 +605,18 @@ extern struct influence_data followup_in
511 #define DEFAULT_STRENGTH 100.0
512 
513 /* Influence functions. */
514-void compute_influence(int color, const char safe_stones[BOARDMAX],
515+void compute_influence(int color, const signed char safe_stones[BOARDMAX],
516                       const float strength[BOARDMAX],
517                       struct influence_data *q,
518                       int move, const char *trace_message);
519 void compute_followup_influence(const struct influence_data *base,
520                                struct influence_data *q,
521                                int move, const char *trace_message);
522-void compute_escape_influence(int color, const char safe_stones[BOARDMAX],
523-                             const char goal[BOARDMAX],
524+void compute_escape_influence(int color,
525+                             const signed char safe_stones[BOARDMAX],
526+                             const signed char goal[BOARDMAX],
527                              const float strength[BOARDMAX],
528-                              char escape_value[BOARDMAX]);
529+                              signed char escape_value[BOARDMAX]);
530 
531 float influence_delta_territory(const struct influence_data *base,
532                                const struct influence_data *q, int color,
533@@ -743,7 +747,7 @@ extern int cosmic_gnugo;             /*
534 extern int large_scale;              /* seek large scale captures */
535 
536 extern int thrashing_dragon;        /* Dead opponent's dragon trying to live */
537-extern char thrashing_stone[BOARDMAX];        /* All thrashing stones. */
538+extern signed char thrashing_stone[BOARDMAX];       /* All thrashing stones. */
539 
540 /* Experimental reading */
541 extern char *rgoal;
542Index: engine/move_reasons.c
543===================================================================
544RCS file: /cvsroot/gnugo/gnugo/engine/move_reasons.c,v
545retrieving revision 1.130
546diff -u -p -r1.130 move_reasons.c
547--- engine/move_reasons.c       12 Jun 2005 09:34:14 -0000      1.130
548+++ engine/move_reasons.c       7 Oct 2005 06:49:16 -0000
549@@ -1402,7 +1402,7 @@ add_replacement_move(int from, int to)
550 
551 /* Find worms rescued by a move at (pos). */
552 void
553-get_saved_worms(int pos, char saved[BOARDMAX])
554+get_saved_worms(int pos, signed char saved[BOARDMAX])
555 {
556   int k;
557   memset(saved, 0, sizeof(saved[0]) * BOARDMAX);
558@@ -1420,7 +1420,7 @@ get_saved_worms(int pos, char saved[BOAR
559      * move is unsafe.
560      */
561     if (move_reasons[r].type == DEFEND_MOVE)
562-      mark_string(worm[what].origin, saved, 1);
563+      signed_mark_string(worm[what].origin, saved, 1);
564     else if (move_reasons[r].type == OWL_DEFEND_MOVE_LOSS) {
565       int origin = dragon[what].origin;
566       int kworm = worm[what].origin;
567@@ -1428,7 +1428,7 @@ get_saved_worms(int pos, char saved[BOAR
568       for (ii = BOARDMIN; ii < BOARDMAX; ii++)
569        if (IS_STONE(board[ii]) && dragon[ii].origin == origin
570            && worm[ii].origin != kworm)
571-         mark_string(worm[ii].origin, saved, 1);
572+         signed_mark_string(worm[ii].origin, saved, 1);
573     }
574   }   
575 }
576@@ -1446,11 +1446,11 @@ get_saved_worms(int pos, char saved[BOAR
577  */
578 void
579 mark_changed_dragon(int pos, int color, int affected, int affected2,
580-                   int move_reason_type, char safe_stones[BOARDMAX],
581+                   int move_reason_type, signed char safe_stones[BOARDMAX],
582                    float strength[BOARDMAX], float *effective_size)
583 {
584   int ii;
585-  char new_status = INFLUENCE_SAVED_STONE;
586+  signed char new_status = INFLUENCE_SAVED_STONE;
587   int result_to_beat = 0;
588 
589   ASSERT1(board[pos] == EMPTY, pos);
590@@ -1550,8 +1550,8 @@ mark_changed_dragon(int pos, int color,
591  * with the new strength.
592  */
593 void
594-mark_changed_string(int affected, char safe_stones[BOARDMAX],
595-                   float strength[BOARDMAX], char new_status)
596+mark_changed_string(int affected, signed char safe_stones[BOARDMAX],
597+                   float strength[BOARDMAX], signed char new_status)
598 {
599   float new_strength;
600   int ii;
601@@ -1575,7 +1575,7 @@ mark_changed_string(int affected, char s
602 
603 /* Find dragons rescued by a move at (pos). */
604 void
605-get_saved_dragons(int pos, char saved[BOARDMAX])
606+get_saved_dragons(int pos, signed char saved[BOARDMAX])
607 {
608   int k;
609   memset(saved, 0, sizeof(saved[0]) * BOARDMAX);
610@@ -1606,8 +1606,10 @@ get_saved_dragons(int pos, char saved[BO
611  * move[pos].move_safety.
612  */
613 void
614-mark_safe_stones(int color, int move_pos, const char saved_dragons[BOARDMAX],
615-                const char saved_worms[BOARDMAX], char safe_stones[BOARDMAX])
616+mark_safe_stones(int color, int move_pos,
617+                const signed char saved_dragons[BOARDMAX],
618+                const signed char saved_worms[BOARDMAX],
619+                signed char safe_stones[BOARDMAX])
620 {
621   int pos;
622 
623Index: engine/move_reasons.h
624===================================================================
625RCS file: /cvsroot/gnugo/gnugo/engine/move_reasons.h,v
626retrieving revision 1.42
627diff -u -p -r1.42 move_reasons.h
628--- engine/move_reasons.h       12 Jun 2005 09:34:14 -0000      1.42
629+++ engine/move_reasons.h       7 Oct 2005 06:49:16 -0000
630@@ -201,10 +201,11 @@ int is_antisuji_move(int pos);
631 void discard_redundant_move_reasons(int pos);
632 
633 void mark_changed_dragon(int pos, int color, int affected, int affected2,
634-                        int move_reason_type, char safe_stones[BOARDMAX],
635+                        int move_reason_type,
636+                        signed char safe_stones[BOARDMAX],
637                         float strength[BOARDMAX], float *effective_size);
638-void mark_changed_string(int affected, char changed_stones[BOARDMAX],
639-                        float strength[BOARDMAX], char new_status);
640+void mark_changed_string(int affected, signed char changed_stones[BOARDMAX],
641+                        float strength[BOARDMAX], signed char new_status);
642 int adjacent_to_nondead_stone(int pos, int color);
643 
644 int find_connection(int worm1, int worm2);
645Index: engine/owl.c
646===================================================================
647RCS file: /cvsroot/gnugo/gnugo/engine/owl.c,v
648retrieving revision 1.233
649diff -u -p -r1.233 owl.c
650--- engine/owl.c        6 Oct 2005 18:53:11 -0000       1.233
651+++ engine/owl.c        7 Oct 2005 06:49:18 -0000
652@@ -79,7 +79,7 @@ struct local_owl_data {
653    */
654   char neighbors[BOARDMAX];
655 
656-  char escape_values[BOARDMAX];
657+  signed char escape_values[BOARDMAX];
658   int color;
659 
660   struct eye_data my_eye[BOARDMAX];
661@@ -6271,7 +6271,7 @@ compute_owl_escape_values(struct local_o
662 {
663   int pos;
664   int m, n;
665-  char safe_stones[BOARDMAX];
666+  signed char safe_stones[BOARDMAX];
667   
668   get_lively_stones(OTHER_COLOR(owl->color), safe_stones);
669   compute_escape_influence(owl->color, safe_stones, NULL, NULL,
670@@ -6292,7 +6292,7 @@ compute_owl_escape_values(struct local_o
671              owl->escape_values[pos] = owl->escape_values[DRAGON2(pos).origin];
672            else {
673              int pos2;
674-             char escape_values[BOARDMAX];
675+             signed char escape_values[BOARDMAX];
676              char dragon[BOARDMAX];
677 
678              compute_escape_influence(owl->color, safe_stones, owl->goal, NULL,
679@@ -6499,7 +6499,7 @@ owl_strong_dragon(int pos)
680 static int
681 owl_escape_route(struct local_owl_data *owl)
682 {
683-  char modified_escape[BOARDMAX];
684+  signed char modified_escape[BOARDMAX];
685   int pos;
686   memcpy(modified_escape, owl->escape_values, sizeof(modified_escape));
687   for (pos = BOARDMIN; pos < BOARDMAX; pos++)
688Index: engine/sgfdecide.c
689===================================================================
690RCS file: /cvsroot/gnugo/gnugo/engine/sgfdecide.c,v
691retrieving revision 1.57
692diff -u -p -r1.57 sgfdecide.c
693--- engine/sgfdecide.c  12 Jun 2005 09:34:14 -0000      1.57
694+++ engine/sgfdecide.c  7 Oct 2005 06:49:18 -0000
695@@ -578,7 +578,7 @@ void
696 decide_combination(int color)
697 {
698   int attack_move;
699-  char defense_moves[BOARDMAX];
700+  signed char defense_moves[BOARDMAX];
701   SGFTree tree;
702   int first = 1;
703   int pos;
704Index: engine/utils.c
705===================================================================
706RCS file: /cvsroot/gnugo/gnugo/engine/utils.c,v
707retrieving revision 1.106
708diff -u -p -r1.106 utils.c
709--- engine/utils.c      12 Jun 2005 09:34:14 -0000      1.106
710+++ engine/utils.c      7 Oct 2005 06:49:19 -0000
711@@ -935,11 +935,11 @@ restore_depth_values()
712  *******************/
713 
714 static int detect_owl_blunder(int move, int color, int *defense_point,
715-                             char safe_stones[BOARDMAX], int liberties,
716+                             signed char safe_stones[BOARDMAX], int liberties,
717                              float *return_value, int save_verbose);
718 
719 static void detect_tactical_blunder(int move, int color, int *defense_point,
720-                                   char safe_stones[BOARDMAX],
721+                                   signed char safe_stones[BOARDMAX],
722                                    int liberties, int *libs,
723                                    float *return_value, int save_verbose);
724 
725@@ -948,7 +948,7 @@ static void detect_tactical_blunder(int
726  */
727 int
728 confirm_safety(int move, int color, int *defense_point,
729-              char safe_stones[BOARDMAX])
730+              signed char safe_stones[BOARDMAX])
731 {
732   return (blunder_size(move, color, defense_point, safe_stones) == 0.0);
733 }
734@@ -973,7 +973,7 @@ confirm_safety(int move, int color, int
735 
736 float
737 blunder_size(int move, int color, int *defense_point,
738-            char safe_stones[BOARDMAX])
739+            signed char safe_stones[BOARDMAX])
740 {
741   int libs[5];
742   int liberties = accuratelib(move, color, 5, libs);
743@@ -981,7 +981,7 @@ blunder_size(int move, int color, int *d
744   int save_verbose = verbose;
745   float return_value = 0.0;
746   int atari;
747-  char defense_moves[BOARDMAX];
748+  signed char defense_moves[BOARDMAX];
749   
750   if (defense_point)
751     *defense_point = NO_MOVE;
752@@ -1045,7 +1045,7 @@ blunder_size(int move, int color, int *d
753 
754 static int
755 detect_owl_blunder(int move, int color, int *defense_point,
756-                  char safe_stones[BOARDMAX], int liberties,
757+                  signed char safe_stones[BOARDMAX], int liberties,
758                   float *return_value, int save_verbose)
759 {
760   int k;
761@@ -1151,7 +1151,7 @@ detect_owl_blunder(int move, int color,
762  */
763 static void
764 detect_tactical_blunder(int move, int color, int *defense_point,
765-                       char safe_stones[BOARDMAX],
766+                       signed char safe_stones[BOARDMAX],
767                        int liberties, int *libs,
768                        float *return_value, int save_verbose)
769 {
770@@ -1325,7 +1325,8 @@ detect_tactical_blunder(int move, int co
771  */
772 
773 int
774-double_atari(int move, int color, float *value, char safe_stones[BOARDMAX])
775+double_atari(int move, int color, float *value,
776+            signed char safe_stones[BOARDMAX])
777 {
778   int other = OTHER_COLOR(color);
779   int k;
780Index: engine/value_moves.c
781===================================================================
782RCS file: /cvsroot/gnugo/gnugo/engine/value_moves.c,v
783retrieving revision 1.152
784diff -u -p -r1.152 value_moves.c
785--- engine/value_moves.c        25 Sep 2005 20:30:02 -0000      1.152
786+++ engine/value_moves.c        7 Oct 2005 06:49:20 -0000
787@@ -105,9 +105,9 @@ move_connects_strings(int pos, int color
788 static float
789 value_moves_get_blunder_size(int move, int color)
790 {
791-  char saved_dragons[BOARDMAX];
792-  char saved_worms[BOARDMAX];
793-  char safe_stones[BOARDMAX];
794+  signed char saved_dragons[BOARDMAX];
795+  signed char saved_worms[BOARDMAX];
796+  signed char safe_stones[BOARDMAX];
797 
798   get_saved_dragons(move, saved_dragons);
799   get_saved_worms(move, saved_worms);
800@@ -930,7 +930,7 @@ induce_secondary_move_reasons(int color)
801         */
802        if (!attack_move) {
803          int strategically_valuable = (worm[aa].size > 3);
804-         char neighbor_dragons[BOARDMAX];
805+         signed char neighbor_dragons[BOARDMAX];
806 
807          memset(neighbor_dragons, 0, sizeof(neighbor_dragons));
808 
809@@ -1773,7 +1773,7 @@ estimate_territorial_value(int pos, int
810   float secondary_value = 0.0;
811 
812   int does_block = 0;
813-  char safe_stones[BOARDMAX];
814+  signed char safe_stones[BOARDMAX];
815   float strength[BOARDMAX];
816 
817   set_strength_data(OTHER_COLOR(color), safe_stones, strength);
818@@ -3644,7 +3644,7 @@ find_best_move(int *the_move, float *val
819               int allowed_moves[BOARDMAX])
820 {
821   int good_move_found = 0;
822-  char blunder_tested[BOARDMAX];
823+  signed char blunder_tested[BOARDMAX];
824   float best_value = 0.0;
825   int best_move = NO_MOVE;
826   int pos;
827Index: engine/worm.c
828===================================================================
829RCS file: /cvsroot/gnugo/gnugo/engine/worm.c,v
830retrieving revision 1.66
831diff -u -p -r1.66 worm.c
832--- engine/worm.c       12 Jun 2005 09:34:14 -0000      1.66
833+++ engine/worm.c       7 Oct 2005 06:49:21 -0000
834@@ -1700,7 +1700,7 @@ defense_callback(int anchor, int color,
835 }
836 
837 void
838-get_lively_stones(int color, char safe_stones[BOARDMAX])
839+get_lively_stones(int color, signed char safe_stones[BOARDMAX])
840 {
841   int ii;
842   memset(safe_stones, 0, BOARDMAX * sizeof(*safe_stones));
843@@ -1712,7 +1712,7 @@ get_lively_stones(int color, char safe_s
844       if (worm[ii].attack_codes[0] == 0
845          || (board[ii] == color
846              && worm[ii].defense_codes[0] != 0))
847-       mark_string(ii, safe_stones, 1);
848+       signed_mark_string(ii, safe_stones, 1);
849     }
850 }
851 
852@@ -1720,7 +1720,7 @@ get_lively_stones(int color, char safe_s
853 void
854 compute_worm_influence()
855 {
856-  char safe_stones[BOARDMAX];
857+  signed char safe_stones[BOARDMAX];
858 
859   get_lively_stones(BLACK, safe_stones);
860   compute_influence(BLACK, safe_stones, NULL, &initial_black_influence,
861Index: interface/play_gtp.c
862===================================================================
863RCS file: /cvsroot/gnugo/gnugo/interface/play_gtp.c,v
864retrieving revision 1.170
865diff -u -p -r1.170 play_gtp.c
866--- interface/play_gtp.c        12 Jun 2005 12:22:44 -0000      1.170
867+++ interface/play_gtp.c        7 Oct 2005 06:49:22 -0000
868@@ -2380,7 +2380,7 @@ static int
869 gtp_combination_defend(char *s)
870 {
871   int color;
872-  char defense_points[BOARDMAX];
873+  signed char defense_points[BOARDMAX];
874   int pos;
875   int first = 1;
876   int n;
877@@ -2423,8 +2423,8 @@ gtp_aa_confirm_safety(char *s)
878   int minsize = 0;
879   int result;
880   int defense_point = NO_MOVE;
881-  char saved_dragons[BOARDMAX];
882-  char saved_worms[BOARDMAX];
883+  signed char saved_dragons[BOARDMAX];
884+  signed char saved_worms[BOARDMAX];
885 
886   n = gtp_decode_move(s, &color, &i, &j);
887   if (n == 0 || POS(i, j) == NO_MOVE)