Computer Chess Club Archives


Search

Terms

Messages

Subject: Nalimov's tablebase code

Author: Paul Svelmoe

Date: 08:55:37 11/12/99


Hi,
  I am still trying to figure out how to go about generating a partial set of 6
man tablebases for the Kasp-World match mainly to prove a draw or win after
58..Qf5.  I believe I have an algorithm that may work relatively painlessly
which would improve on Eugene Schults' work, but I am stuck on one line of code,
the only one out of all of it that I just totally don't understand.  Here it
is...

#define	TB(name, fSym, funW, funB, cbW, cbB)	{ tbid_##name, fSym, { funW, funB
}, #name, { cbW, cbB } },

Can someone explain to me what this does?  I understand the part before the
first "{" as this is the way it seems a lot of the macros start out.  But after
that, I can't make sense of it, and none of my c/c++ books show anything like
it.  Is there something special about the "##" in tbid_##name?  What is "#name"?
"#name" doesn't seem to correspond with any of the arguments.  And finally, what
is that comma at the end doing in there?

Thanks!
Paul




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.