one final thread on robolito....in all fairness

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

User avatar
Dr.Wael Deeb
Posts: 9773
Joined: Wed Mar 08, 2006 8:44 pm
Location: Amman,Jordan

Re: one final thread on robolito....in all fairness

Post by Dr.Wael Deeb »

Graham Banks wrote:
Rolf wrote:
Graham Banks wrote: I do know more than I can reveal, but of course, that means nothing to others.
That means I can quote you in future that you know certain stuff that is for your critical eyes enough to conclude that the things we are talking about are in fact sort of clones with stolen material intended to harm Vas, which is the only goal because nobody there is dreaming of a careeer in the Wch cycles. Is that correct, Graham? Could you confirm that this is more or less true?
I am not an expert Rolf (and certainly no programmer), but I do sometimes get entrusted with information that I can't share.
However, this is irrelevant because it means little or nothing to anybody else.

Cheers,
Graham.
Exchanging a few e-mails with the author of Rybka with the aim to get entrusted with some kind of information is totaly irrelevant Graham not becuase you are not sharing it with us,but because you are not a programmer and thus whatever they tell you will take it for granted if you have,and you do have,sympathy toward the author....
I am sure that this isuue,exchanging a few e-mails between Vasik and some of his fans,is a clever approach causing you to believe him with no questions asked....another bright example is Rolf I am afraid....
BTW,I am in no way questioning your behaviour,just saying that a few exchanged e-mails must not make you a blind believers....
Source code regards :wink: ,
Dr.D
_No one can hit as hard as life.But it ain’t about how hard you can hit.It’s about how hard you can get hit and keep moving forward.How much you can take and keep moving forward….
User avatar
Dr.Wael Deeb
Posts: 9773
Joined: Wed Mar 08, 2006 8:44 pm
Location: Amman,Jordan

Re: one final thread on robolito....in all fairness

Post by Dr.Wael Deeb »

Rolf wrote:
Dr.Wael Deeb wrote:
Rolf wrote:
SzG wrote:when Chris Wittington was moderator, did he not say 'discussion is allowed, libel not'?
Yes, but he meant it the other way round. The point was that certain members insulted Vas for having created a clone in parts. And the clone epidemy has the single goal, that is, to force or seduce Vas to prove something by opening his code. But this isnt all. Alone the insulting against Vas has that goal. It's a sort of public blackmail. Tell us your secrets and we will stop insulting and torturing you. Motif for that kind of ugliness: when Vas was new here we spoke with him told him all kind of little secrets, then, when he had digested enough he left us and went commercial. This is what we call evil. Bob is arguing along this line.

The fac that Vas didnt leave at all, but just was begged to leave with his Rybka fans and therefore created his own room, that is the proof that Bob is wrong with his suggestion.
First bold statement = Absolutely true :!:
Second bold statement = Absolutely untrue :!:
Dr.D
No, even Bob himself created a new forum to discuss Crafty issues. Vas didnt do anything different but he didnt leave. He could be asked where he is right now. How could someone leave who had to manage hundreds of supporters for Rybka? Against what you say I remember well how Vas was discriminated for allegedly monopolizing the forum for his Rybka questions.

:!:
yes,this is a fact and I do remember,but on the other hand this is not a reason to leave....
Anyway,Bob is here and he didn't leave as you can see with your own eyes :D
Dr.D
_No one can hit as hard as life.But it ain’t about how hard you can hit.It’s about how hard you can get hit and keep moving forward.How much you can take and keep moving forward….
User avatar
Graham Banks
Posts: 44851
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: one final thread on robolito....in all fairness

Post by Graham Banks »

Dr.Wael Deeb wrote: Exchanging a few e-mails with the author of Rybka with the aim to get entrusted with some kind of information is totaly irrelevant Graham not becuase you are not sharing it with us,but because you are not a programmer and thus whatever they tell you will take it for granted if you have,and you do have,sympathy toward the author....
I am sure that this isuue,exchanging a few e-mails between Vasik and some of his fans,is a clever approach causing you to believe him with no questions asked....another bright example is Rolf I am afraid....
BTW,I am in no way questioning your behaviour,just saying that a few exchanged e-mails must not make you a blind believers....
Source code regards :wink: ,
Dr.D
Vas entrusted me with no further information than confirming what I asked. The other information has come from respected and reliable sources.
However, you're correct when you say that this is irrelevant to others (as I already stated).

Interesting that I'm condemned as a Rybka groupie when 99% of my testing involves other engines.
It's just more a case of sticking up for what I know to be right.

Cheers,
Graham.
gbanksnz at gmail.com
User avatar
Dr.Wael Deeb
Posts: 9773
Joined: Wed Mar 08, 2006 8:44 pm
Location: Amman,Jordan

Re: one final thread on robolito....in all fairness

Post by Dr.Wael Deeb »

Graham Banks wrote:
Dr.Wael Deeb wrote: Exchanging a few e-mails with the author of Rybka with the aim to get entrusted with some kind of information is totaly irrelevant Graham not becuase you are not sharing it with us,but because you are not a programmer and thus whatever they tell you will take it for granted if you have,and you do have,sympathy toward the author....
I am sure that this isuue,exchanging a few e-mails between Vasik and some of his fans,is a clever approach causing you to believe him with no questions asked....another bright example is Rolf I am afraid....
BTW,I am in no way questioning your behaviour,just saying that a few exchanged e-mails must not make you a blind believers....
Source code regards :wink: ,
Dr.D
Vas entrusted me with no further information than confirming what I asked. The other information has come from respected and reliable sources.
However, you're correct when you say that this is irrelevant to others (as I already stated).

Interesting that I'm condemned as a Rybka groupie when 99% of my testing involves other engines.
It's just more a case of sticking up for what I know to be right.

Cheers,
Graham.
Stick to whtever you think is right buddy,I am not judging you in no way....
The condemned regards :wink: ,
Dr.D
_No one can hit as hard as life.But it ain’t about how hard you can hit.It’s about how hard you can get hit and keep moving forward.How much you can take and keep moving forward….
User avatar
Rolf
Posts: 6081
Joined: Fri Mar 10, 2006 11:14 pm
Location: Munster, Nuremberg, Princeton

Re: one final thread on robolito....in all fairness

Post by Rolf »

Graham Banks wrote:
Rolf wrote:
Graham Banks wrote: I do know more than I can reveal, but of course, that means nothing to others.
That means I can quote you in future that you know certain stuff that is for your critical eyes enough to conclude that the things we are talking about are in fact sort of clones with stolen material intended to harm Vas, which is the only goal because nobody there is dreaming of a careeer in the Wch cycles. Is that correct, Graham? Could you confirm that this is more or less true?
I am not an expert Rolf (and certainly no programmer), but I do sometimes get entrusted with information that I can't share.
However, this is irrelevant because it means little or nothing to anybody else.

Cheers,
Graham.
It would be ok if you remained silent but why do you need to tell me that what you knew is irrelevant?
-Popper and Lakatos are good but I'm stuck on Leibowitz
User avatar
Graham Banks
Posts: 44851
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: one final thread on robolito....in all fairness

Post by Graham Banks »

Rolf wrote: It would be ok if you remained silent but why do you need to tell me that what you knew is irrelevant?
I thought you might need the company. :wink: :)
gbanksnz at gmail.com
Aaron Becker
Posts: 292
Joined: Tue Jul 07, 2009 4:56 am

Re: one final thread on robolito....in all fairness

Post by Aaron Becker »

If you want to determine whether or not it's a clone, the obvious thing to do is look at the code, rather than arguing about the credibility of various people involved. I don't take a position one way or the other, but there are some very unusual things in Ippolit's code regardless. For example, this is line 6173 of IPP_ENG.c (just one line!):

Code: Select all

score -= 20 * (((((((((((((A8) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((A8) & 7) - ((position_fixed.black_king) & 7)) : -(((A8) & 7) - ((position_fixed.black_king) & 7))))) >= (((((((A8) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((A8) >> 3) - ((position_fixed.black_king) >> 3)) : -(((A8) >> 3) - ((position_fixed.black_king) >> 3)))))) ? (((((((A8) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((A8) & 7) - ((position_fixed.black_king) & 7)) : -(((A8) & 7) - ((position_fixed.black_king) & 7))))) : (((((((A8) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((A8) >> 3) - ((position_fixed.black_king) >> 3)) : -(((A8) >> 3) - ((position_fixed.black_king) >> 3)))))))) <= (((((((((((H1) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((H1) & 7) - ((position_fixed.black_king) & 7)) : -(((H1) & 7) - ((position_fixed.black_king) & 7))))) >= (((((((H1) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((H1) >> 3) - ((position_fixed.black_king) >> 3)) : -(((H1) >> 3) - ((position_fixed.black_king) >> 3)))))) ? (((((((H1) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((H1) & 7) - ((position_fixed.black_king) & 7)) : -(((H1) & 7) - ((position_fixed.black_king) & 7))))) : (((((((H1) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((H1) >> 3) - ((position_fixed.black_king) >> 3)) : -(((H1) >> 3) - ((position_fixed.black_king) >> 3))))))))) ? (((((((((((A8) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((A8) & 7) - ((position_fixed.black_king) & 7)) : -(((A8) & 7) - ((position_fixed.black_king) & 7))))) >= (((((((A8) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((A8) >> 3) - ((position_fixed.black_king) >> 3)) : -(((A8) >> 3) - ((position_fixed.black_king) >> 3)))))) ? (((((((A8) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((A8) & 7) - ((position_fixed.black_king) & 7)) : -(((A8) & 7) - ((position_fixed.black_king) & 7))))) : (((((((A8) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((A8) >> 3) - ((position_fixed.black_king) >> 3)) : -(((A8) >> 3) - ((position_fixed.black_king) >> 3)))))))) : (((((((((((H1) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((H1) & 7) - ((position_fixed.black_king) & 7)) : -(((H1) & 7) - ((position_fixed.black_king) & 7))))) >= (((((((H1) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((H1) >> 3) - ((position_fixed.black_king) >> 3)) : -(((H1) >> 3) - ((position_fixed.black_king) >> 3)))))) ? (((((((H1) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((H1) & 7) - ((position_fixed.black_king) & 7)) : -(((H1) & 7) - ((position_fixed.black_king) & 7))))) : (((((((H1) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((H1) >> 3) - ((position_fixed.black_king) >> 3)) : -(((H1) >> 3) - ((position_fixed.black_king) >> 3))))))))) + 10 * (((((((((((((A8) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((A8) & 7) - ((position_fixed.black_king) & 7)) : -(((A8) & 7) - ((position_fixed.black_king) & 7))))) <= (((((((A8) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((A8) >> 3) - ((position_fixed.black_king) >> 3)) : -(((A8) >> 3) - ((position_fixed.black_king) >> 3)))))) ? (((((((A8) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((A8) & 7) - ((position_fixed.black_king) & 7)) : -(((A8) & 7) - ((position_fixed.black_king) & 7))))) : (((((((A8) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((A8) >> 3) - ((position_fixed.black_king) >> 3)) : -(((A8) >> 3) - ((position_fixed.black_king) >> 3)))))))) <= (((((((((((H1) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((H1) & 7) - ((position_fixed.black_king) & 7)) : -(((H1) & 7) - ((position_fixed.black_king) & 7))))) <= (((((((H1) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((H1) >> 3) - ((position_fixed.black_king) >> 3)) : -(((H1) >> 3) - ((position_fixed.black_king) >> 3)))))) ? (((((((H1) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((H1) & 7) - ((position_fixed.black_king) & 7)) : -(((H1) & 7) - ((position_fixed.black_king) & 7))))) : (((((((H1) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((H1) >> 3) - ((position_fixed.black_king) >> 3)) : -(((H1) >> 3) - ((position_fixed.black_king) >> 3))))))))) ? (((((((((((A8) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((A8) & 7) - ((position_fixed.black_king) & 7)) : -(((A8) & 7) - ((position_fixed.black_king) & 7))))) <= (((((((A8) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((A8) >> 3) - ((position_fixed.black_king) >> 3)) : -(((A8) >> 3) - ((position_fixed.black_king) >> 3)))))) ? (((((((A8) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((A8) & 7) - ((position_fixed.black_king) & 7)) : -(((A8) & 7) - ((position_fixed.black_king) & 7))))) : (((((((A8) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((A8) >> 3) - ((position_fixed.black_king) >> 3)) : -(((A8) >> 3) - ((position_fixed.black_king) >> 3)))))))) : (((((((((((H1) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((H1) & 7) - ((position_fixed.black_king) & 7)) : -(((H1) & 7) - ((position_fixed.black_king) & 7))))) <= (((((((H1) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((H1) >> 3) - ((position_fixed.black_king) >> 3)) : -(((H1) >> 3) - ((position_fixed.black_king) >> 3)))))) ? (((((((H1) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((H1) & 7) - ((position_fixed.black_king) & 7)) : -(((H1) & 7) - ((position_fixed.black_king) & 7))))) : (((((((H1) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((H1) >> 3) - ((position_fixed.black_king) >> 3)) : -(((H1) >> 3) - ((position_fixed.black_king) >> 3)))))))));
No one writes their code like this by hand, obviously. There are several reasons stuff like this could show up in your code:
  • You are a crazy savant, and this is just how you do things
  • This code is machine-generated, possibly as part of a machine-learning framework
  • You have intentionally obfuscated your code before releasing it
  • The code is decompiled or reverse engineered
I think the first two possibilities are very unlikely in this case. The third one seems plausible. Maybe the authors want to release their code, while still keeping some secrets about the methods they're using to generate parts of their code. To test this theory, I looked through the code for RobboLito to try and find the equivalent code. Although it's hard to be completely sure, I think this is it:

Code: Select all

					value -=
					20 * MINIMUM (FAR_ (A8, POSITION.black_king_square),
					FAR_ (H1,
					POSITION.black_king_square)) +
					10 * MINIMUM (NEAR_ (A8, POSITION.black_king_square),
					NEAR_ (H1, POSITION.black_king_square));
Of course this is much simpler, and I think that the end result after macros are expanded is identical. I think now the possibilities can be narrowed down further. Either the authors obfuscated their work at first, then thought better of it, or their initial efforts at disassembly/reverse engineering were relatively crude, and after more time and effort they were able to abstract away a lot of the complexity. Given the other differences between Robbolito and Ippolit, I lean strongly toward the latter possibility.

I'd like to note one more thing: although I consider this evidence that Ippolit is the result of disassembly or reverse engineering of another code, that's not evidence that the authors stole anything. I'm not a lawyer, but I think it is possible to do this work entirely legitimately, without stealing code from anyone and without breaking any laws. In fact, it might be considered evidence that they didn't directly steal code for anything, because if you have the source code there's no need to disassemble anything.
ozziejoe
Posts: 811
Joined: Wed Mar 08, 2006 10:07 pm

Re: one final thread on robolito....in all fairness

Post by ozziejoe »

ok, graham , thanks for that. It was hard to find any information in all these threads on the subject (and even in this thread). So in your judgment it is most likely to be a clone, based on the evidence you have?
User avatar
Graham Banks
Posts: 44851
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: one final thread on robolito....in all fairness

Post by Graham Banks »

ozziejoe wrote:ok, graham , thanks for that. It was hard to find any information in all these threads on the subject (and even in this thread). So in your judgment it is most likely to be a clone, based on the evidence you have?
Yes, but others need to make their own decision. I think that most have and are unlikely to change their stance.

Cheers,
Graham.
gbanksnz at gmail.com
User avatar
Matthias Gemuh
Posts: 3245
Joined: Thu Mar 09, 2006 9:10 am

Re: one final thread on robolito....in all fairness

Post by Matthias Gemuh »

Aaron Becker wrote:If you want to determine whether or not it's a clone, the obvious thing to do is look at the code, rather than arguing about the credibility of various people involved. I don't take a position one way or the other, but there are some very unusual things in Ippolit's code regardless. For example, this is line 6173 of IPP_ENG.c (just one line!):

Code: Select all

score -= 20 * (((((((((((((A8) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((A8) & 7) - ((position_fixed.black_king) & 7)) : -(((A8) & 7) - ((position_fixed.black_king) & 7))))) >= (((((((A8) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((A8) >> 3) - ((position_fixed.black_king) >> 3)) : -(((A8) >> 3) - ((position_fixed.black_king) >> 3)))))) ? (((((((A8) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((A8) & 7) - ((position_fixed.black_king) & 7)) : -(((A8) & 7) - ((position_fixed.black_king) & 7))))) : (((((((A8) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((A8) >> 3) - ((position_fixed.black_king) >> 3)) : -(((A8) >> 3) - ((position_fixed.black_king) >> 3)))))))) <= (((((((((((H1) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((H1) & 7) - ((position_fixed.black_king) & 7)) : -(((H1) & 7) - ((position_fixed.black_king) & 7))))) >= (((((((H1) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((H1) >> 3) - ((position_fixed.black_king) >> 3)) : -(((H1) >> 3) - ((position_fixed.black_king) >> 3)))))) ? (((((((H1) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((H1) & 7) - ((position_fixed.black_king) & 7)) : -(((H1) & 7) - ((position_fixed.black_king) & 7))))) : (((((((H1) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((H1) >> 3) - ((position_fixed.black_king) >> 3)) : -(((H1) >> 3) - ((position_fixed.black_king) >> 3))))))))) ? (((((((((((A8) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((A8) & 7) - ((position_fixed.black_king) & 7)) : -(((A8) & 7) - ((position_fixed.black_king) & 7))))) >= (((((((A8) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((A8) >> 3) - ((position_fixed.black_king) >> 3)) : -(((A8) >> 3) - ((position_fixed.black_king) >> 3)))))) ? (((((((A8) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((A8) & 7) - ((position_fixed.black_king) & 7)) : -(((A8) & 7) - ((position_fixed.black_king) & 7))))) : (((((((A8) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((A8) >> 3) - ((position_fixed.black_king) >> 3)) : -(((A8) >> 3) - ((position_fixed.black_king) >> 3)))))))) : (((((((((((H1) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((H1) & 7) - ((position_fixed.black_king) & 7)) : -(((H1) & 7) - ((position_fixed.black_king) & 7))))) >= (((((((H1) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((H1) >> 3) - ((position_fixed.black_king) >> 3)) : -(((H1) >> 3) - ((position_fixed.black_king) >> 3)))))) ? (((((((H1) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((H1) & 7) - ((position_fixed.black_king) & 7)) : -(((H1) & 7) - ((position_fixed.black_king) & 7))))) : (((((((H1) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((H1) >> 3) - ((position_fixed.black_king) >> 3)) : -(((H1) >> 3) - ((position_fixed.black_king) >> 3))))))))) + 10 * (((((((((((((A8) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((A8) & 7) - ((position_fixed.black_king) & 7)) : -(((A8) & 7) - ((position_fixed.black_king) & 7))))) <= (((((((A8) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((A8) >> 3) - ((position_fixed.black_king) >> 3)) : -(((A8) >> 3) - ((position_fixed.black_king) >> 3)))))) ? (((((((A8) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((A8) & 7) - ((position_fixed.black_king) & 7)) : -(((A8) & 7) - ((position_fixed.black_king) & 7))))) : (((((((A8) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((A8) >> 3) - ((position_fixed.black_king) >> 3)) : -(((A8) >> 3) - ((position_fixed.black_king) >> 3)))))))) <= (((((((((((H1) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((H1) & 7) - ((position_fixed.black_king) & 7)) : -(((H1) & 7) - ((position_fixed.black_king) & 7))))) <= (((((((H1) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((H1) >> 3) - ((position_fixed.black_king) >> 3)) : -(((H1) >> 3) - ((position_fixed.black_king) >> 3)))))) ? (((((((H1) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((H1) & 7) - ((position_fixed.black_king) & 7)) : -(((H1) & 7) - ((position_fixed.black_king) & 7))))) : (((((((H1) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((H1) >> 3) - ((position_fixed.black_king) >> 3)) : -(((H1) >> 3) - ((position_fixed.black_king) >> 3))))))))) ? (((((((((((A8) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((A8) & 7) - ((position_fixed.black_king) & 7)) : -(((A8) & 7) - ((position_fixed.black_king) & 7))))) <= (((((((A8) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((A8) >> 3) - ((position_fixed.black_king) >> 3)) : -(((A8) >> 3) - ((position_fixed.black_king) >> 3)))))) ? (((((((A8) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((A8) & 7) - ((position_fixed.black_king) & 7)) : -(((A8) & 7) - ((position_fixed.black_king) & 7))))) : (((((((A8) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((A8) >> 3) - ((position_fixed.black_king) >> 3)) : -(((A8) >> 3) - ((position_fixed.black_king) >> 3)))))))) : (((((((((((H1) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((H1) & 7) - ((position_fixed.black_king) & 7)) : -(((H1) & 7) - ((position_fixed.black_king) & 7))))) <= (((((((H1) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((H1) >> 3) - ((position_fixed.black_king) >> 3)) : -(((H1) >> 3) - ((position_fixed.black_king) >> 3)))))) ? (((((((H1) & 7) - ((position_fixed.black_king) & 7)) >= 0) ? (((H1) & 7) - ((position_fixed.black_king) & 7)) : -(((H1) & 7) - ((position_fixed.black_king) & 7))))) : (((((((H1) >> 3) - ((position_fixed.black_king) >> 3)) >= 0) ? (((H1) >> 3) - ((position_fixed.black_king) >> 3)) : -(((H1) >> 3) - ((position_fixed.black_king) >> 3)))))))));
No one writes their code like this by hand, obviously.

Have you intensionally skipped the claim that the source code was in a russian programming language "b", and ippolit.c is a decompilation of that code's executable ?

Matthias.
My engine was quite strong till I added knowledge to it.
http://www.chess.hylogic.de