Author: Mathieu Pagé
Date: 10:11:43 12/06/05
Go up one level in this thread
On December 06, 2005 at 13:06:01, Zappa wrote: >On December 06, 2005 at 12:43:24, Mathieu Pagé wrote: > >>On December 05, 2005 at 23:24:52, Zappa wrote: >> >>>I am getting really, really tired of coding all my evaluation twice (once for >>>white and once for black). However, one of the things that is keeping me from >>>switching to a for(i < 2) loop is that I can't do a shift! >>> >>>For example, if I have some pattern based on (pawns << 8) for white, than that >>>is (pawns >> 8) for black, and you can't do a negative shift in IA32. >> >>Hi, >> >>I never tested the idea i'm about to propose, I just thought of it while reading >>your post, but it seem to make sense for me. This require that you code in C++, >>I don't know if it's the case. >> >>In every cases i'd like to have somes opinions from you guys. >> >>here is a sample function : >> >>template <int color> >>void eval() >>{ >> // do some stuff >> >> if (color == white) >> { >> result = pawns >> 8; >> } >> else >> { >> result = pawns << 8; >> } >> >> // do some stuff with result >> >> return; >>} >> >>Then you can cal your evaluation function like this >> >>if (colorToMove == white) >>{ >> x = eval<WHITE>(); >>} >>else >>{ >> x = eval<BLACK>(); >>} >> >>This way you can write only one evaluation function with IFs where the code is >>different for the whites and blacks, but since the color is passed as a template >>parameter, the conditional jump are resolved at the link time (resulting in two >>function being compiled) causing no overhead. >> >>What do you think of this idea ? >> >>Mathieu > >Yes, but I have to write it twice :) That is my problem. > >anthony Hi Anthony, Sure you have to write some parts twice, but I think that the most part of your function(s) will be the same, only a small proportions of the evaluation function will be in a if-else statement. I must admit, my solution is only partial. Mathieu
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.