Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: By the way, here is an instance where crafty's node counts truncate

Author: Heiner Marxen

Date: 11:07:03 09/26/99

Go up one level in this thread


On September 23, 1999 at 09:53:00, Robert Hyatt wrote:

>On September 23, 1999 at 05:00:04, Andreas Stabel wrote:
[snip]
>>This is approx. how I have done it in my program:
>>
>>#define BITBOARD __int64
>>
>>char * outdlong(BITBOARD oval)
>>{
>>   BITBOARD h1, h2;
>>   int i, negflag;
>>   static char obuff[32];
>>
>>   i = 30; negflag = 0;
>>   if (oval < 0) { negflag = 1; oval = -oval; }
>>   for (;;) {
>>      h1 = oval / 10;
>>      h2 = oval - (h1*10);
>>      obuff[i] = (char)(h2+ '0'); --i;
>>      if (h1 == 0) break;
>>      oval = h1;
>>   }
>>   obuff[31] = 0;
>>   if (negflag) obuff[i] = '-'; else ++i;
>>   return(&obuff[i]);
>>}
>>
>>char outbuf[...]
>>
>>sprintf(outbuff,"something %s something ...",,,,outdlong(myvar),,,);
>>
>>Of course in this implementation you should be careful not to use the
>>outdlong routine twice without copying the output string since the static
>>variable obuff will be overwritten.
>>
>>Regards
>>Andreas Stabel
>
>
>that works, but you can't use it twice in one printf()...  ie in my case, I
>would need multiple 64 bit ints, one for nodes, one for evals done, one for
>hash probes, one for pawn hash probes, several for search extensions...  you
>have to print such lists one entry at a time because of the static buffer you
>use.  I do this for "DisplayEvaluation()" and it is a headache...

That can be solved.  Say, you want at most 8 such conversions to be used
in one printf (between 2 sequence points).  Just use an 8-element array
of such static string buffers, with a static index for the next to use
element, cyclically walking through the 8 buffers.  I've done that,
and found it to be a great help.

Sometimes I've used "double" for counters to achieve 53 bits of integer
precision, and print them with "%.0f".

Heiner



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.