Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: a question about speed

Author: William H Rogers

Date: 11:47:49 01/03/03

Go up one level in this thread


On January 03, 2003 at 12:03:45, Uri Blass wrote:

>code B is slightly faster than code A.
>I know that side can get only 0 or 1(something that the compiler does not know)
>and B is eqvivalent to A if you assume that side gets only 0 or 1.
>
>Is it possible to write a third code that will be even faster than B?
>
>I think that if the compiler can know that side is or 0 or 1 it can do B even
>faster.
>
>code A:
>
>if (side==LIGHT)
>{
>  if (to>=56)
>  {
>    gen_promote(from,to,bits);
>    return;
>  }
>}
>else
>{
>  if (to<=7)
>  {
>    gen_promote(from,to,bits);
>    return;
>  }
>}
>
>code B:
>if ((to+side*(63-2*to))>=56)
>{
>  gen_promote(from,to,bits);
>  return;
>}
>
>Uri

I am not sure that I understand you question, but I did discover this fact when
writing my program and that is if you have seperate move generators for both
black and white, it does run faster than for example:
"Side to move times color of piece" this was done to see if we found our own
color of the side to move. The multiplacation by "side" tends to slow things
down just a fraction. I hope this is what you were inquireing about.
Reguards
Bill




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.