Crossposting from Talkchess:
Rebel wrote:bob wrote:Actually the issue is EXACTLY as it is presented in Zach's paper. Apparently your math skills have disappeared over the years, because anyone with some basic understanding of the concepts of "associative, commutative and distributive" properties as they apply (or don't apply) to addition vs multiplication.
Everybody can check for themselves if I did my work correctly on the
false PST issue. Download the 2 C-programs offered by Mark Watkins, compile and run them and compare, they match my page exactly. It's double checked by another programmer.
The Zach Wegner / Mark Watkins Fruit and Rybka PST code can be downloaded at :
http://www.open-chess.org/viewtopic.php?f=5&t=1570
I would actually be pleased if someone can confirm my findings.
Hint, after compilation run it with the > extension, it will create a textfile instead of printing things on the screen.
So:
Code: Select all
PST_FRUIT >fruit.txt
PST_RYBKA >rybka.txt
It's much more confortable.
I don't normally post here for well-known reasons, but your claim is, for reasons only known to you, thoroughly ingenuous and needs to be debunked here and now.
The PST evidence demonstrates that Vas used the Fruit PST-generation code to generate his PSTs by changing a couple of values, NOT that the Rybka PSTs are a 1 to 1 copy of the Fruit PSTs, scaled to Rybka's pawn values (which is what your website shows). The two C source files demonstrate this quite clearly.
Code: Select all
-> diff PST_FRUIT.c PST_RYBKA.c
52,55c52,56
< static const int PawnFileOpening = 5;
< static const int KnightCentreOpening = 5;
< static const int KnightCentreEndgame = 5;
< static const int KnightRankOpening = 5;
---
> static const int PawnFileOpening = 181;
> static const int PawnFileEndgame = -97; // added line
> static const int KnightCentreOpening = 347;
> static const int KnightCentreEndgame = 56;
> static const int KnightRankOpening = 358;
57,68c58,69
< static const int KnightTrapped = 100;
< static const int BishopCentreOpening = 2;
< static const int BishopCentreEndgame = 3;
< static const int BishopBackRankOpening = 10;
< static const int BishopDiagonalOpening = 4;
< static const int RookFileOpening = 3;
< static const int QueenCentreOpening = 0;
< static const int QueenCentreEndgame = 4;
< static const int QueenBackRankOpening = 5;
< static const int KingCentreEndgame = 12;
< static const int KingFileOpening = 10;
< static const int KingRankOpening = 10;
---
> static const int KnightTrapped = 3200;
> static const int BishopCentreOpening = 147;
> static const int BishopCentreEndgame = 49;
> static const int BishopBackRankOpening = 251;
> static const int BishopDiagonalOpening = 378;
> static const int RookFileOpening = 104;
> static const int QueenCentreOpening = 98;
> static const int QueenCentreEndgame = 108;
> static const int QueenBackRankOpening = 201;
> static const int KingCentreEndgame = 401;
> static const int KingFileOpening = 469;
> static const int KingRankOpening = 0; // most numbers above changed
90,93c91,95
< {P(piece,sq,Opening) += PawnFile[square_file(sq)] * PawnFileOpening;}
< P(piece,D3,Opening) += 10; P(piece,E3,Opening) += 10; // centre control
< P(piece,D4,Opening) += 20; P(piece,E4,Opening) += 20;
< P(piece,D5,Opening) += 10; P(piece,E5,Opening) += 10;
---
> {P(piece,sq,Opening) += PawnFile[square_file(sq)] * PawnFileOpening;
> P(piece,sq,Endgame) += PawnFile[square_file(sq)] * PawnFileEndgame;} // added
> // P(piece,D3,Opening) += 10; P(piece,E3,Opening) += 10; // centre control
> // P(piece,D4,Opening) += 20; P(piece,E4,Opening) += 20; // two lines removed
> P(piece,D5,Opening) += 74; P(piece,E5,Opening) += 74; // change numbers