gnugo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnugo-devel] escape_values patch


From: Evan Berggren Daniel
Subject: [gnugo-devel] escape_values patch
Date: Sat, 28 Sep 2002 17:35:21 -0400 (EDT)

This patch changes the escape_values array in the owl struct from int to
char.  This speeds up do_push_owl, and changes speeds on other things.
Net result is a minor speedup overall.  However, it's hard to tell where
from, because seemingly unrelated things change, presumably because of
caching effects.  Overall speedup is a relatively consistent 8-10s out of
1570 (on nngs2.tst).

Also, something that recently went into CVS significantly increased
pattern scanning time, causing about a 10% (overall) performance hit on
nngs2.tst.  I'm not sure what, I can look though.  Just thought I'd point
it out.

Thanks

Evan Daniel

Index: engine/dragon.c
===================================================================
RCS file: /cvsroot/gnugo/gnugo/engine/dragon.c,v
retrieving revision 1.82
diff -u -d -r1.82 dragon.c
--- engine/dragon.c     26 Sep 2002 20:28:09 -0000      1.82
+++ engine/dragon.c     28 Sep 2002 02:54:29 -0000
@@ -1384,7 +1384,7 @@
  */
 int
 dragon_escape(char goal[BOARDMAX], int color,
-             int escape_value[BOARDMAX])
+             char escape_value[BOARDMAX])
 {
   int ii;
   int k;
@@ -1544,7 +1544,7 @@
 {
   int ii;
   char goal[BOARDMAX];
-  int escape_value[BOARDMAX];
+  char escape_value[BOARDMAX];

   ASSERT1(IS_STONE(board[pos]), pos);

Index: engine/influence.c
===================================================================
RCS file: /cvsroot/gnugo/gnugo/engine/influence.c,v
retrieving revision 1.65
diff -u -d -r1.65 influence.c
--- engine/influence.c  26 Sep 2002 20:28:09 -0000      1.65
+++ engine/influence.c  28 Sep 2002 02:54:29 -0000
@@ -1768,7 +1768,7 @@

 void
 compute_escape_influence(char goal[BOARDMAX], int color,
-                        int escape_value[BOARDMAX],
+                        char escape_value[BOARDMAX],
                         int dragons_known)
 {
   int i, j;
@@ -1779,7 +1779,7 @@
    * parameter currently is not used.
    */
   static int cached_board[BOARDMAX];
-  static int escape_values[BOARDMAX][4];
+  static char escape_values[BOARDMAX][4];
   static int active_caches[4];

   /* Encode the values of color and dragons_known into an integer
Index: engine/liberty.h
===================================================================
RCS file: /cvsroot/gnugo/gnugo/engine/liberty.h,v
retrieving revision 1.120
diff -u -d -r1.120 liberty.h
--- engine/liberty.h    28 Sep 2002 00:05:08 -0000      1.120
+++ engine/liberty.h    28 Sep 2002 02:54:29 -0000
@@ -353,7 +353,7 @@
 void restore_depth_values(void);
 int safe_move(int move, int color);
 void join_dragons(int d1, int d2);
-int dragon_escape(char goal[BOARDMAX], int color, int escape_value[BOARDMAX]);
+int dragon_escape(char goal[BOARDMAX], int color, char escape_value[BOARDMAX]);
 int is_same_dragon(int d1, int d2);
 int are_neighbor_dragons(int d1, int d2);
 int first_worm_in_dragon(int w);
@@ -598,7 +598,7 @@
                         float black_influence[BOARDMAX],
                         int influence_regions[BOARDMAX]);
 void compute_escape_influence(char goal[BOARDMAX], int color,
-                              int escape_value[BOARDMAX], int dragons_known);
+                              char escape_value[BOARDMAX], int dragons_known);

 /* Eye space functions. */
 int is_eye_space(int pos);
Index: engine/owl.c
===================================================================
RCS file: /cvsroot/gnugo/gnugo/engine/owl.c,v
retrieving revision 1.107
diff -u -d -r1.107 owl.c
--- engine/owl.c        26 Sep 2002 20:04:36 -0000      1.107
+++ engine/owl.c        28 Sep 2002 02:54:29 -0000
@@ -67,7 +67,7 @@
 struct local_owl_data {
   char goal[BOARDMAX];
   char boundary[BOARDMAX];
-  int escape_values[BOARDMAX];
+  char escape_values[BOARDMAX];
   int color;

   struct eye_data my_eye[BOARDMAX];





reply via email to

[Prev in Thread] Current Thread [Next in Thread]