gnugo-devel
[Top][All Lists]
Advanced

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

Re: [gnugo-devel] owl stack


From: Paul Pogonyshev
Subject: Re: [gnugo-devel] owl stack
Date: Tue, 13 May 2003 20:17:23 -0400
User-agent: KMail/1.5.9

Arend wrote:
> Nando wrote:
> > Paul wrote:
> > > before i go deeper into the matter i want to ask: what for do we
> > > push the complete local_owl_data structure each time owl makes a
> > > move? from a quick glance it seems to me that at least my_eye[],
> > > half_eye[], lunch*[], inessential[] and safe_move_cache[] are
> > > recomputed from scratch at each move (and they probably take over
> > > 90% of the structure).
> >
> > Well, in the case of my_eye[] and half_eye[], it seems to me that they
> > are not always recomputed. In do_owl_defend() we have :
> >
> >   /* First see whether we might already be alife. */
> >   if (escape < MAX_ESCAPE) {
> >     if (owl_estimate_life(owl, ...
> >
> > which makes me wonder how accurate are owl_eyespace() constraints once
> > the escape variable has reached MAX_ESCAPE...
> >
> > Or am I missing something again ?
>
> I think you are right. As usual, two optimizations biting each other.
> I think we either have to
> 1. undo Paul's patch,
> 2. or add a special flag for this case.
> 3. Or we should call owl_estimate_life, but ignore the moves it generates.
> 4. Or just zero the eye spaces.
>
> I think I am mostly in favor of 3.

another option is to memcpy my_eye[] and half_eye[] when escape >= MAX_ESCAPE.
this will make it work the same way as without patch yet save its speed gain.

Paul





reply via email to

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