The difference seems to be that static null-move pruning uses the exact evaluation, while normal futility pruning guesses it from the evaluation in the parent plus an estimate for the gain of the current move. But as in both cases you use a significant margin, which is an arbitrary guess anyway, I wonder if it would buy you anything at all using an exact evaluation here.
Furthermore, in the examples you give here eval gets alpha and beta passed, suggesting it could do a lazy eval if it is far outside the window, which would erase the difference almost completely.
fixing CPW-engine
Moderator: Ras
-
- Posts: 28354
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
-
- Posts: 2204
- Joined: Sat Jan 18, 2014 10:24 am
- Location: Andorra
Re: fixing CPW-engine
Hi!
I compiled it for 32 and 64 bit windows:
http://www.andscacs.com/cpw/cpw1.1.rar
The file contains also the vc2010 solution.
I compiled it for 32 and 64 bit windows:
http://www.andscacs.com/cpw/cpw1.1.rar
The file contains also the vc2010 solution.
Daniel José -
http://www.andscacs.com

-
- Posts: 1600
- Joined: Mon Feb 21, 2011 9:48 am
Re: fixing CPW-engine
Given the representation of the board(0x88),
just an executable, it's the same performance.
Gracias, Daniel José.
just an executable, it's the same performance.
Gracias, Daniel José.

-
- Posts: 2204
- Joined: Sat Jan 18, 2014 10:24 am
- Location: Andorra
Re: fixing CPW-engine
Yes!velmarin wrote:Given the representation of the board(0x88),
just an executable, it's the same performance.
Gracias, Daniel José.

Daniel José -
http://www.andscacs.com

-
- Posts: 905
- Joined: Mon Jan 15, 2007 11:23 am
- Location: Warsza
Re: fixing CPW-engine
I have just uploaded Daniel's execuables on GitHub. Thank You for supplying them!
Pawel Koziol
http://www.pkoziol.cal24.pl/rodent/rodent.htm
http://www.pkoziol.cal24.pl/rodent/rodent.htm
-
- Posts: 548
- Joined: Tue Feb 04, 2014 12:25 pm
- Location: Gower, Wales
- Full name: Colin Jenkins
Re: fixing CPW-engine
Code: Select all
if ( depth == 0 ) return Quiesce( alpha, beta );
sd.nodes ++;
if ( isRepetition() ) return contempt();
I was wondering about the above. Will that miss some repetitions, because it went into Q in a repetition situation...? (No rep test in Q).