Computer Chess Club Archives


Search

Terms

Messages

Subject: a question about speed difference that I do not understand

Author: Uri Blass

Date: 02:33:08 12/05/01


In my program I have the following commands when I generate my pin arrays:

if (color(sq)==side)
{
   pin[sq]=-1;
   d=direction[kingsquare[color(sq)]][sq];
...

The strange speed demage to my program happens when I try to replace color(sq)
with side in the last line

color(sq) is more complicated to find  then finding side that is simply integer.
I expected that in the worst case there will be no speed change thanks to
optimazion of compiler but I did not imagine that my program could run slower
when I do something simpler.

some data about my program that may help:



my defs.h file includes

#define color(target) (((info[target])>>3)&3)


my data.c file includes

int info[64];
int side;
int direction[64][64];
int kingsquare[2];
int pin[64];

you can see that calculating color(sq) is not something simple(you need first to
calculate info[sq] and later to calculate from it the value for color(sq))

Uri



This page took 0.03 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.