Author: Vincent Diepeveen
Date: 05:09:52 05/31/01
Hello i had in mind comparing assembly output of 2 things but now i look in crafty 18.9 i see the pattern is not even in crafty 18.9, though it's a basic pattern. so it's hard to compare things. But i'm pretty amazed by that every thing is getting referenced as tree->pos.board[sq] If i would be roman catholic i would now make a cross and say "lucky i'm multiprocessor", because what i would be using there is board[sq] And i'm using that everywhere in my evaluation. Bob however smartly got rid of the thing by using a define that however translatest to it PcOnSq() it's called. But in the assembly code you still see it! Also what i see is the general problem of bitboards: if( (something[indexed]&bitmask) == pattern ) Where i can do if( something[indexed] == pattern ) So i save an AND there. Also i'm pretty amazed by 'signed char bval_w[64]'. First of all in DIEP i am happy to announce that i threw out all 8 bits arrays. I didn't know crafty is still using 8 bits arrays! I thought it was a mixture of 32 bits with 64 bits! The second thing i wonder about is why this is getting done *every* evaluation. bval_w gives a piece square table value which is constant for bishops. You can do that incremental in makemove/unmakemove !! This is a pure waste of system time! Note in DIEP i would do that in my makemove as: int *p; global int tablescore; p = psq[piece]; tablescore += p[to_square]-p[from_square]; Crafty does it every evaluation!!! Bob something to improve in your evaluation! Overall i'm amazed crafty plays that strong with so little evaluation! Probably tuning of it has been done at a very professional level! Best Regards, Vincent
This page took 0.01 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.