Ok, we are now getting into surreal territory.
I was referring to the sentence immediately after the sentence you quoted. Obvious to me, apparently not obvious to you.
So you don't want to communicate. Fine with me. You have earned my contempt.
Moderators: hgm, Rebel, chrisw
Ok, we are now getting into surreal territory.
Ok my mistake, i understand what you were referring to now.
Code: Select all
"objective score" + (1/2) "contempt" <= "contempted score" <= "objective score" + "contempt"
You can't use it in analysis mode when playing moves back and forth, it pollutes the hash table and it takes much longer to get an accurate score. This is because with "Both" on , the score is different from the white POV as compared to the black POV . You like "Both", that's fine, different strokes for different folks, but for many of us, for the way we use the engine, it's totally useless.BeyondCritics wrote: ↑Wed Nov 21, 2018 8:12 pm Please can you explain, why setting "Contempt=Both" is so unbearable in analysis mode?
At the very least it relieves us from useless 3-fold repetitions in the pv, which were really a plague, as you might recall.
I fully agree, it pollutes the hash table and this is likely _the_ serious issue with it. At the time i wrotes this, i wasn't really into the source code, so i just asked.MikeB wrote: ↑Sun Dec 02, 2018 7:50 pmYou can't use it in analysis mode when playing moves back and forth, it pollutes the hash table and it takes much longer to get an accurate score. This is because with "Both" on , the score is different from the white POV as compared to the black POV . You like "Both", that's fine, different strokes for different folks, but for many of us, for the way we use the engine, it's totally useless.BeyondCritics wrote: ↑Wed Nov 21, 2018 8:12 pm Please can you explain, why setting "Contempt=Both" is so unbearable in analysis mode?
At the very least it relieves us from useless 3-fold repetitions in the pv, which were really a plague, as you might recall.
DannDann Corbit wrote: ↑Mon Dec 03, 2018 9:04 pm There are two different issues at play.
Contempt causes weird scores, especially when the score is close to zero.
There is also the stockfish "sewing machine" effect, which has been partially cured, but sometimes raises it's ugly head.
So I have a setting to turn both of those things off.
This one requires further changes in the source code (which I have described elsewhere):
o["Contempt"] << Option(0, -100, 100);
Also this one:
o["Show Fail High and Fail Low"] << Option(true);
which I used to default to false, but I have turned it back on because it is much more rare today, due to a fix a while back in SF.
I would switch to CFish exclusively, but the logging in CFish is dead code that no longer works and I need the logging for what I like to do.
Yes.JohnS wrote: ↑Wed Dec 05, 2018 3:17 amDannDann Corbit wrote: ↑Mon Dec 03, 2018 9:04 pm There are two different issues at play.
Contempt causes weird scores, especially when the score is close to zero.
There is also the stockfish "sewing machine" effect, which has been partially cured, but sometimes raises it's ugly head.
So I have a setting to turn both of those things off.
This one requires further changes in the source code (which I have described elsewhere):
o["Contempt"] << Option(0, -100, 100);
Also this one:
o["Show Fail High and Fail Low"] << Option(true);
which I used to default to false, but I have turned it back on because it is much more rare today, due to a fix a while back in SF.
I would switch to CFish exclusively, but the logging in CFish is dead code that no longer works and I need the logging for what I like to do.
Are you saying that setting Contempt=0 and Analysis Contempt=Off in Stockfish10 is not enough to produce neutral scores (no white/black bias) in analysis mode?
Thanks.
Code: Select all
int ct = int(Options["Contempt"]) * PawnValueEg / 100; // From centipawns
// In analysis mode, adjust contempt in accordance with user preference
if (Limits.infinite || Options["UCI_AnalyseMode"])
ct = Options["Analysis Contempt"] == "Off" ? 0
: Options["Analysis Contempt"] == "Both" ? ct
: Options["Analysis Contempt"] == "White" && us == BLACK ? -ct
: Options["Analysis Contempt"] == "Black" && us == WHITE ? -ct
: ct;
// In evaluate.cpp the evaluation is from the white point of view
contempt = (us == WHITE ? make_score(ct, ct / 2)
: -make_score(ct, ct / 2));
Code: Select all
// Adjust contempt based on root move's previousScore (dynamic contempt)
int dct;
if (Options["Dynamic Contempt"] == false)
{
dct = 0;
contempt = Score(0);
}
else
{
dct = ct + 88 * previousScore / (abs(previousScore) + 200);
contempt = (us == WHITE ? make_score(dct, dct / 2)
: -make_score(dct, dct / 2));
}