Just having a peek at the SF code. It's really nicely written, I must say.
Static null move pruning looks very much like something that's been in use for years (in gnuchess over 10 years ago etc.), but the SF implementation is far more sophisticated. One like confuses me, though. In the test for whether or not to do the pruning, we have:
silentshark wrote:
which is really aggressive pruning.. I'd assumed that futility_margin would always be somewhat higher. Have I missed something?
You missed that from depth 1 you go directly in qsearch where, if the above condition holds, you return immediately through stand pat so this is just a little shortcut.
silentshark wrote:
which is really aggressive pruning.. I'd assumed that futility_margin would always be somewhat higher. Have I missed something?
You missed that from depth 1 you go directly in qsearch where, if the above condition holds, you return immediately through stand pat so this is just a little shortcut.
What a quick reply! Thanks.
I thought it would be at depth or <1 not <=1 you go into qsearch? i.e