Rebel wrote:And you are missing it again, you only look at the code and not what the code does. If you had read Marcel carefully you would had seen Fruit and Rybka are evaluating different, Fruit has the exception code for second ranked pawns that can advance 2 squares. Rybka has not, just a quick and dirty evaluation. Fabien uses the Kmoch definition, Vas not. Does the name Hans Kmoch and his basic stuff about pawns every chess player needs to know mean anything anythng to you? There is even a whole page on the CPW about him.hyatt wrote:That was not a chess lesson. It was "RE nonsense". If you read what he wrote, he SPECIFICALLY discussed the difference between a bit board implementation and a mailbox implementation. Something we said we EXPLICITLY abstracted away. A loop vs an AND mask? Bit board vs mailbox, nothing more, nothing less.
So please don't call that a "lesson" to someone who actually teaches programming. That was more of a "chess obfuscation" than anything else. Zach did it exactly right there. I don't think much of the "seems to be, or appears to be" nonsense. It is or it isn't.
Your question two posts back in that thread is also nonsensically phrased. You snipped just the 4 bit-wise ANDs (tst instructions) and left out the rest. You DID realize that the masks and stuff were loaded at the top of the code? You seem almost surprised that some rather convoluted mailbox code collapses into 4 AND operations in a bit board program. This is quite common. I've used the term "bit-parallel" because bit boards let me ask a question with one AND that would take a loop with multiple if-statements inside in a mailbox program. That's part of the attractiveness of bit boards for those of us that decided to invest the time to get comfortable with them.
You see, there is this pattern, you ASM geeks (of which I belong too) only look at the code and shout EUREKA!, this piece of Rybka code smells to similarity with Fruit and then you forget to look what the code actually evaluates, as in this case.
So my statement still stands:
COMP EVAL fails to mention that EVERY eval ingrediënt in Fruit and Rybka is coded DIFFERENTLY even after substraction of the Mailboard / Bitboard differences.
Next one?
You miss MY point. Do you know why Rybka doesn't do that? Not so convenient in bitmaps. A pretty natural part of conversion from one to the other. I had several such things that were in Cray Blitz but which I left out of Crafty because (a) it was not clear if they were really beneficial and (b) it was more complicated (affecting speed) to do it the same way. Taking both of those into consideration...
BTW we didn't say "smells to similarity." We said "they do the same thing" or in a few cases "almost exactly the same thing but there is one difference."
The rook scoring (open/half-open files) is a good example. I'd bet that was an outright error in translation, seeing as how it is actually a -25 Elo change.
If you want to hang on to that "every" simply because the code doesn't match, and it obviously could NOT match when using two different board representations" then that's up to you. I know better.