Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: a question about speed

Author: Matt Taylor

Date: 17:26:44 01/03/03

Go up one level in this thread


On January 03, 2003 at 14:27:02, Ricardo Gibert wrote:

>On January 03, 2003 at 14:09:56, Uri Blass wrote:
>
>>On January 03, 2003 at 14:04:23, Ricardo Gibert wrote:
>>
>>>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;
>>>>  }
>>>>}
>>>
>>>
>>>Try something like this:
>>>
>>>if ((to<=7) || (to>=56))
>
>
>You could also use "if (to-8 >= 48)" instead of the above. This assumes "to" is
>unsigned. It would be a shame for you to duplicate code just avoid 1 extra
>operation (the subtraction).
<snip>

That is awesome. I did not even think of that. That is probably the best code
possible to put there.

-Matt



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.