My recent correspondence with Vasik Rajlich

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

Moderators: hgm, Rebel, chrisw

alpha123
Posts: 660
Joined: Sat Dec 05, 2009 5:13 am
Location: Colorado, USA

Re: My recent correspondence with Vasik Rajlich

Post by alpha123 »

K I Hyams wrote:
Sven Schüle wrote:
K I Hyams wrote:
Zach Wegner wrote:
Vasik Rajlich wrote: (5) It seems to be guesswork. I'd estimate that 40% of the points are wrong, 40% are standard chess/computer chess concepts, and 20% are direct Fruit influence on Rybka.
Sigh... That's the same old Vasik nonsense we are used to. It's quite easy for him to say something is wrong, but he has yet to demonstrate anything proving it. I talked to him about my webpage before posting it, and the only example he could come up with of something that was wrong was the PSTs, which is one of the most clear-cut pieces of evidence.
Yes, I wondered whether you would pick up on that point. If he has given Sven permission to publish his email, it would appear that he is willing to publicly cast aspersions on your competence and indirectly that of Bob Hyatt without providing any evidence.
I cannot see how the permission to publish emails, based on my question whether I may do so, should by any means be related to competence of other people, even more to aspersions about that. Appears very far-fetched to me.

Sven
I'd estimate that 40% of the points are wrong”, That implies that Zach’s analysis is riddled with mistakes.
40% are standard chess/computer chess concepts”. That implies that Zach is unable to recognise standard computer chess concepts when they are staring him in the face..

In other words, he is saying that at least 80% of Zach’s work is either inaccurate or incompetent. That sounds to me to be a serious slur on Zach’s ability. He has made those slurs without providing a shred of evidence and he has allowed you to publish them in that form.

If I were to make such serious aspersions on the competence of a colleague, I would not dream of allowing them to go public without providing concrete examples. It appears that Vas Rajlich does not adhere to that standard.
Now just wait till Rondo starts to own Rybka.... :lol:

Peter
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: My recent correspondence with Vasik Rajlich

Post by bob »

Albert Silver wrote:
Alexander Schmidt wrote:
Albert Silver wrote:Moderators do not read each and every post.
You seriously want to tell me that Graham did not read the initial posting?
I'm not the moderator, but am trying to suggest good form: yelling in a thread is really not the way to go about it.

Anyhow, exceptions do occur especially at times of crisis. I was involved in such a crisis, and though election declarations and discussions were supposed to be redirected to the Help and Suggestions forums, the rampant accusations suggested this was a form of censorship and cover-up. As a result, we left them in the main forums for that period.

I am not saying this is the case here, but considering the nature of the current crisis and debacle, it would not surprise me if the mods had decided to leave this here, hopefully to let the members form their own opinions.
Here I have to agree. I've been a moderator too often to count, and I simply do not read every post. Will not read every post. I choose the topics I am interested in and ignore the rest.

To get moderator action, reporting the post is the simplest way, because the moderators all get email delivered to their normal email account pointing out that there is a problem and providing a link to the post in question. If the rules of the road for moderators was that they had to read every last post, I would never run again...
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: My recent correspondence with Vasik Rajlich

Post by bob »

Sven Schüle wrote:
K I Hyams wrote:
Sven Schüle wrote:
K I Hyams wrote:
Zach Wegner wrote:
Vasik Rajlich wrote: (5) It seems to be guesswork. I'd estimate that 40% of the points are wrong, 40% are standard chess/computer chess concepts, and 20% are direct Fruit influence on Rybka.
Sigh... That's the same old Vasik nonsense we are used to. It's quite easy for him to say something is wrong, but he has yet to demonstrate anything proving it. I talked to him about my webpage before posting it, and the only example he could come up with of something that was wrong was the PSTs, which is one of the most clear-cut pieces of evidence.
Yes, I wondered whether you would pick up on that point. If he has given Sven permission to publish his email, it would appear that he is willing to publicly cast aspersions on your competence and indirectly that of Bob Hyatt without providing any evidence.
I cannot see how the permission to publish emails, based on my question whether I may do so, should by any means be related to competence of other people, even more to aspersions about that. Appears very far-fetched to me.

Sven
I'd estimate that 40% of the points are wrong”, That implies that Zach’s analysis is riddled with mistakes.
40% are standard chess/computer chess concepts”. That implies that Zach is unable to recognise standard computer chess concepts when they are staring him in the face..

In other words, he is saying that at least 80% of Zach’s work is either inaccurate or incompetent. That sounds to me to be a serious slur on Zach’s ability. He has made those slurs without providing a shred of evidence and he has allowed you to publish them in that form.

If I were to make such serious aspersions on the competence of a colleague, I would not dream of allowing them to go public without providing concrete examples. It appears that Vas Rajlich does not adhere to that standard.
These percentages are very plausible for me. I don't know whether many non-programmers can follow but nevertheless I suggest to all interested members to reread what I already posted five weeks ago on that topic (EO subforum). Read especially my quite detailled comments on each of the points from Zach's pages under the heading "My details". If I had to match these 11 points with the 40-40-20 estimate by Vas then I would perhaps come to similar numbers as he did.

One note @Zach here: for me claiming that something is "wrong", or "standard CC concept" does not mean anything about your competence, and also nothing personal. I just try to keep as objective as possible. If someone would make 4 wrong statements out of 11 then this does not turn him "incompetent" at all. Just to let you know. EDIT: I see no reason why Vas should view this differently.

Sven
I believe that I responded to your post back then point by point also. Your "refutation" offers _zero_ details. And I _do_ mean _zero_. When we started the analysis, we were comparing rybka binary to fruit source, and since the binary is stripped of symbols, and since it is in asm, it takes some work to go from asm back to C. And that code was posted here. And there were howls of protest because our goal was to take the binary and map it directly back to C that matches fruit. I tried to point out that C to binary is a many-to-one mapping, as there are many ways to code up an algorithm where the source looks completely different but the binary is identical. Students try this all the time by changing variable names, procedure names, switching from a for loop to a while loop, and so forth. So going blindly from asm to C is not helpful, but _if_ you ask the question, "Can I use this assembly code, in its entirety without adding instructions or having any left over, and map it back to the exact C source in fruit?" then the answer was yes in more than one instance, the first was the main loop where commands are read and the infamous do_parse() procedure is called.

If you don't accept any of that, that's your choice. But there _is_ ample evidence to show that code was copied. It is not about how much was copied, it is about was _any_ copied, and the answer is most certainly "yes". It is time to get out from behind this false cover of "not too much" or "just a little". One more time, you can't be just a little bit pregnant. Ideas are not the same as code. We are talking about _code_.

Another new excuse is "Rybka is bitboard, fruit is not, can't be copied". Baloney. Much of my early evaluation was not bitboard since I have always maintained a mailbox copy of the board to make it easy to figure out what piece is on a particular square. And I converted that code directly to bitboard code later. Are you _really_ saying that is not copied. When I copy A to B, then modify B to use a different board representation, and now B is not a copy of A. That's convoluted thinking, to be kind about it.

What if the robo* guys convert from bitboards? Are they _also_ OK by this definition, even though it looks more and more like they are already OK, based on continually arriving data.
tomgdrums
Posts: 736
Joined: Wed Dec 02, 2009 9:48 am

Re: My recent correspondence with Vasik Rajlich

Post by tomgdrums »

bob wrote:
K I Hyams wrote:
Sven Schüle wrote:
K I Hyams wrote:
Zach Wegner wrote:
Vasik Rajlich wrote: (5) It seems to be guesswork. I'd estimate that 40% of the points are wrong, 40% are standard chess/computer chess concepts, and 20% are direct Fruit influence on Rybka.
Sigh... That's the same old Vasik nonsense we are used to. It's quite easy for him to say something is wrong, but he has yet to demonstrate anything proving it. I talked to him about my webpage before posting it, and the only example he could come up with of something that was wrong was the PSTs, which is one of the most clear-cut pieces of evidence.
Yes, I wondered whether you would pick up on that point. If he has given Sven permission to publish his email, it would appear that he is willing to publicly cast aspersions on your competence and indirectly that of Bob Hyatt without providing any evidence.
I cannot see how the permission to publish emails, based on my question whether I may do so, should by any means be related to competence of other people, even more to aspersions about that. Appears very far-fetched to me.

Sven
I'd estimate that 40% of the points are wrong”, That implies that Zach’s analysis is riddled with mistakes.
40% are standard chess/computer chess concepts”. That implies that Zach is unable to recognise standard computer chess concepts when they are staring him in the face..

In other words, he is saying that at least 80% of Zach’s work is either inaccurate or incompetent. That sounds to me to be a serious slur on Zach’s ability. He has made those slurs without providing a shred of evidence and he has allowed you to publish them in that form.

If I were to make such serious aspersions on the competence of a colleague, I would not dream of allowing them to go public without providing concrete examples. It appears that Vas Rajlich does not adhere to that standard.
A couple of points.

1. Allowing the email to be posted is simply "a way of saying something without _really_ saying something, particularly without saying something with concrete supporting evidence." So it is just a way to side-step the issue, once again.

2. I personally believe that he knows that we know, and we know that he knows that we know. And that there is no possible refutation, so avoiding the topic and hoping it eventually blows over is the best alternative strategy to confronting it head on.

So don't hold your breath waiting on evidence. This "I don't have time" is a crock. Years ago Berliner accused me of cheating at the 1986 WCCC event that we won. I helped Levy, Newborn, Marsland, and Thompson evaluate the claim by providing whatever data they asked for. They wanted to run certain moves thru the version of Cray Blitz we used in that game. I made arrangements for Cray time (dedicated SMP crays are not exactly easy to come by) and had Cray restore the version from that date from their backups and had them confirm with Levy that they did daily backups and that there was no possible way anyone could have somehow created a faked version and put it into their backup system. I took Berliner's claims, point by point, and contacted other programs for the 3-4 moves he pointed out "would _never_ be played by a computer." I had the programmers involved then send sample output from _their_ program to Levy (Ken Thompson started the ball rolling since he was involved and immediately tested the positions on Belle and found it would play the same moves.) I spent a lot of time. In 1986, during my _first_ year of Ph.D. studies, while I was preparing for the Level I Ph.D. exam given Jan of 1997 (the WCCC was Summer of 86, the cheating claim surfaced around October. Yet I _still_ found the time to defend our hard work (we had 3 of us working on this program). Even with Level I exam preparation in full swing.

So I don't buy this "no time at the moment." One will make time, _if_ one actually has a way of refuting the claim, which we did to _everybody_'s satisfaction. The final letter from Levy took Berliner's claim, point by point, and directly refuted each and every one with hard evidence. Why can't we get that here? Perhaps there is no hard evidence to refute the claim? So why does everyone keep waiting for something that is not going to come (This is about the fruit/rybka point). And then what about the Rybka/IP* issue? One has to ask "why??" And there are not many _reasonable_ possible explanations, if you are fair in trying to answer that "Why?"

So, the situation "is what it is, and it isn't going to change."

Not much point in keeping the hope alive.
Dr. Hyatt, we have debated in the recent past (with me coming from the non-technical side of things) BUT I will say that I completely agree with you here! I do not buy the "I don't have time for it", excuse either.

If Vas had some mysterious personal reasons for not wanting to present evidence, I would give benefit of the doubt on that. BUT "I don't have time" is not a valid excuse from Vas in any way shape or form.
Roger Brown
Posts: 782
Joined: Wed Mar 08, 2006 9:22 pm

Re: My recent correspondence with Vasik Rajlich

Post by Roger Brown »

tomgdrums wrote:
Dr. Hyatt, we have debated in the recent past (with me coming from the non-technical side of things) BUT I will say that I completely agree with you here! I do not buy the "I don't have time for it", excuse either.

If Vas had some mysterious personal reasons for not wanting to present evidence, I would give benefit of the doubt on that. BUT "I don't have time" is not a valid excuse from Vas in any way shape or form.


Hello Tom,

In the above quote I could replace Dr. Hyatt with your name and the rest of your post would be mine as well. Whoa, a cloned post!

Time cannot be a reason, not when so much of it has elapsed already.

I hope that there will be some resolution one way or another.

Soon.

Later.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: My recent correspondence with Vasik Rajlich

Post by bob »

Roger Brown wrote:
tomgdrums wrote:
Dr. Hyatt, we have debated in the recent past (with me coming from the non-technical side of things) BUT I will say that I completely agree with you here! I do not buy the "I don't have time for it", excuse either.

If Vas had some mysterious personal reasons for not wanting to present evidence, I would give benefit of the doubt on that. BUT "I don't have time" is not a valid excuse from Vas in any way shape or form.


Hello Tom,

In the above quote I could replace Dr. Hyatt with your name and the rest of your post would be mine as well. Whoa, a cloned post!

Time cannot be a reason, not when so much of it has elapsed already.

I hope that there will be some resolution one way or another.

Soon.

Later.
If one cares about his/her reputation, then one will take the necessary time to defend it when necessary. One will take the necessary time to produce supporting data if it is available. This only makes good sense. He is stuck on opposite sides of the issue here. On one hand, it is pretty certain that he copied parts of fruit, which is forbidden. Others besides him have provided evidence and he's provided no refutation. On the other hand, he has stated that ip* was (originally) an exact copy of Rybka (now amended to a copy but with lots of changes made to it) but has (again) provided no evidence of any kind.

this kind of behaviour completely mystifies me? If he could refute the first claim, or validate the second claim, either would disappear. Yet they continue to live lives of their own because of a lack of interest/data/time/etc...
Alexander Schmidt
Posts: 1203
Joined: Thu May 10, 2007 2:49 pm

Re: My recent correspondence with Vasik Rajlich

Post by Alexander Schmidt »

Graham Banks wrote:You seriously want to tell me that Graham did not read the initial posting?
Of course[/quote]

When I wrote that you answered in the thread already.

And the thread is still there, so just admit that you are not impartial.

Cheers
Alex
Alexander Schmidt
Posts: 1203
Joined: Thu May 10, 2007 2:49 pm

Re: My recent correspondence with Vasik Rajlich

Post by Alexander Schmidt »

Roger Brown wrote:I say that there should be some time limit on the length that these statements can stand unchallenged.
One year?

Expired...
Alexander Schmidt
Posts: 1203
Joined: Thu May 10, 2007 2:49 pm

Re: My recent correspondence with Vasik Rajlich

Post by Alexander Schmidt »

Well if this accusation is allowed in the public forum, I attach importance to post some defending details also in public. I know it is all discussed, no need to discuss it again. Move it to EOF if you like, but take the initial accusation with it.

Here are some details:

I am always talking about the differences between Ippolit and Rybka, I want to show some details.

Maybe my work encourages someone to proof me wrong. I would be happy about a critical factual discussion. :D

This is not meant as an evidence that Ippolit is no clone of Rybka, but it shows that the engines are different enough to ask for a proof if someone says it's a clone.

After all I am sure Ippolit is NOT based on a decompiled Rybka. In another thread I showed why I think the roots are Kaissa from Vladimir Yelin. BTW it would be a hard challange to decompile Rybka 3, translate the decompiled version to something understandable, and improve the engine along the way by 100 ELO in a half year.

I can not exclude the possibility that parts of Rybka are inside Ippolit. I am thinking about Rybkas so called tables. But they are also in Strelka, it should be easy for an expert to find them in Ippolit. Maybe something else, but who can be sure it is "stolen"? Maybe it is only the idea that was taken, since Strelka many secrets of Rybka are public.

BTW: I am not even useing Ippolit. I am more interested in Chess960, standart chess became too boring for me...

But now to the promised facts :)

Movegenerator and moveordering

There are several ways to create the movegeneration. The same movegen don't mean it is the same engine because there are not many possibilities how an engine creates it's moves. It can happen that 2 different engines create the same moves perchance. But it is still a good hint.

How to test the movegen: Let the engine analyse positions where several moves have the same score like a draw or mate. I test a viarety of King vs. King positions, and positions with a mate in 1. Chosen to see which pieces and which direction of the moves are generated first.

I have a few epd files with the moves of different engines, I can test a new engine with my epd files and find out where I have to look closer. Here is one example:

7K/8/2Q1Q3/1Q3Q2/3k4/1Q3Q2/2Q1Q3/8 w - - 0 0 bm e6d7;Crafty
1R3B1K/N1N5/2Q1Q3/7R/3k4/N1N5/2Q1Q3/R6R w - - 0 0 bm c7b5;Crafty
1R3B1K/N7/2Q1Q3/5Q1R/3k4/1Q3Q2/2Q1Q3/R6R w - - 0 0 bm a7b5;Crafty
1R3B1K/8/2Q1Q3/B6R/3k4/6B1/2Q1Q3/R1B4R w - - 0 0 bm f8g7;Crafty
1R5K/8/2Q1Q3/B6R/3k4/6B1/2Q1Q3/R1B4R w - - 0 0 bm a5b6;Crafty
1R5K/8/2Q1Q3/7R/3k4/8/2Q1Q3/R1B1B2R w - - 0 0 bm e1c3;Crafty
1R4RK/8/2Q1Q3/7R/3k4/8/2Q1Q3/R6R w - - 0 0 bm g8d8;Crafty
7K/8/2Q1Q3/8/3k4/8/2Q1Q3/R6R w - - 0 0 bm h1h4;Crafty
7K/8/2Q1Q3/8/3k4/8/2Q1Q3/R7 w - - 0 0 bm a1a4;Crafty
7B/6K1/2Q1Q3/8/3k4/8/2Q1Q3/8 w - - 0 0 bm e6d7;Crafty
6KB/8/2Q1Q3/2R1R3/3k4/2R1R3/2Q1Q3/8 w - - 0 0 bm e5h5;Crafty
8/8/3k4/8/8/3K4/8/8 w - - 0 0 bm d3e4;Crafty
8/8/3k4/8/8/3K4/8/8 b - - 0 1 bm d6c5;Crafty
8/8/8/5k2/8/3K4/8/8 w - - 0 0 bm d3d4;Crafty
8/8/8/4k3/8/3K4/8/8 w - - 0 0 bm d3c4;Crafty
8/8/8/3k4/8/3K4/8/8 w - - 0 0 bm d3e3;Crafty
7K/8/8/8/8/6k1/8/8 w - - 0 0 bm h8g8;Crafty
4K3/8/4k3/8/8/8/8/8 w - - 0 0 bm e8f8;Crafty
7k/8/8/8/8/3p4/1K6/8 w - - 0 0 bm b2c3;Crafty
8/7k/5P2/8/8/8/1K6/8 w - - 0 0 bm f6f7;Crafty

In all positions Ippolit plays a different move.

Ippolit has a _very_ different movegeneration than Rybka.


Maximum Depth

Engines have implemented a number with the maximum depth, they will not calculate deeper. Same as Movegen, it's just a hint, no proof. With this position you can find out the max depth: 4b1k1/3p1p1p/3P1PpP/6P1/1p6/pPp1p3/P1P1P3/2KB4 b - - 0 1

Ippolit has a different maximum depth than Rybka.


Search

It's quite tricky because adjusting parameters can result in a very different behaviour. So a different search don't mean different roots, but it's still a hint for originality :)

One of my test positions is this one: 2k5/8/7P/8/8/8/8/3R1K2 w - - 0 1

Look how fast Rybka reaches it's max depth, and how "slow" Ippolit gets deeper. Also you can see differences in the output: Rybka shows only the best move, Ippolit pv's.

Ippolit has a different search than Rybka.


Evaluation

The evaluation is easier to test. Not in the middlegame, but in the endgame. Try positions like this: k7/8/8/8/8/2B5/8/K7 b - - 0 1
(Switch of tablebases)

You can see the evaluation for bishop mobility or other bonuses in a drawn position. Don't look only on the absolute values, there might be a factor implemented. Look also on changes, directions and values of the changes.

Strelka for example has exactly the same values as Rybka here!

Or this one: k7/8/8/8/8/P1B5/8/K7 b - - 0 1

Ippolit has the knowledge of the wrong bishop, Rybka don't.

Ippolit has a different eval than Rybka.

I must admit that there are a few similaries in the eval. For example not evaluating 0 in a drawn position. Also the evaluatiopn in the middlegame is sometimes similar. But we are far far away from calling Ippolit a clone because of this.


UCI Fingerprint

A very good method to find clones is to look at the UCI parser. In fact with this methode most of the clones where caught (Patriot, Fafis, Deep9, Nr.5, Toga...). Just let the engines analyse a position and look at the direct output. UCI is a protocol where an author can send info strings at any time at any place, in a row or one after the other. So you have millions of possible combinations, you get a kind of fingerprint. Usually engines look different, different versions of the same engine look mostly nearly the same - That means improiveing the engine will seldom change the UCI fingerprint. Rybka 1 Beta - Rybka 3 has the same fingerprint for example.

Look at the output below.

Ippolit has a _very_ different UCI interface than Rybka.

Likely Ippolits roots are NOT Rybka.

Rybka 3

Code: Select all

379.375-->1:go infinite
379.438<--1&#58;info depth 1
379.438<--1&#58;info depth 2
379.438<--1&#58;info depth 2 score cp 26 time 17 nodes 42 nps 2529 pv g1f3
379.438<--1&#58;info depth 2 time 17 nodes 51 nps 3072
379.438<--1&#58;info depth 3
379.438<--1&#58;info depth 3 score cp 9 time 17 nodes 65 nps 3915 pv g1f3
379.438<--1&#58;info depth 3 time 17 nodes 114 nps 6866
379.438<--1&#58;info depth 4
379.438<--1&#58;info depth 4 score cp 13 time 17 nodes 142 nps 8553 pv g1f3
379.453<--1&#58;info depth 4 time 17 nodes 190 nps 11444
379.453<--1&#58;info depth 5
379.453<--1&#58;info depth 5 score cp 9 time 32 nodes 267 nps 8544 pv g1f3 g8f6
379.453<--1&#58;info depth 5 time 32 nodes 426 nps 13632
379.453<--1&#58;info depth 6
379.470<--1&#58;info depth 6 score cp 6 time 48 nodes 722 nps 15402 pv g1f3 g8f6 b1c3
379.485<--1&#58;info depth 6 time 64 nodes 1243 nps 19888
379.485<--1&#58;info depth 7
379.500<--1&#58;info depth 7 score cp 10 time 79 nodes 1553 nps 20130 pv g1f3 g8f6 b1c3 b8c6
379.532<--1&#58;info depth 7 time 110 nodes 2284 nps 21261
379.532<--1&#58;info depth 8
379.578<--1&#58;info depth 8 score cp 6 time 157 nodes 3506 nps 22867 pv g1f3 g8f6 b1c3 b8c6 d2d3
379.656<--1&#58;info depth 8 time 235 nodes 5569 nps 24266
379.656<--1&#58;info depth 9
379.984<--1&#58;info depth 9 score cp 11 time 564 nodes 11312 nps 20538 pv g1f3 g8f6 c2c4 b8c6 d2d3 e7e6
380.048<--1&#58;info depth 9 time 626 nodes 12895 nps 21093
380.048<--1&#58;info depth 10
380.672<--1&#58;info depth 10 score cp 14 time 1251 nodes 25119 nps 20561 pv g1f3 g8f6 b1c3 b8c6 d2d4 d7d5 c1f4
380.813<--1&#58;info depth 10 time 1392 nodes 28796 nps 21183
380.813<--1&#58;info depth 11
381.406<--1&#58;info depth 11 score cp 14 time 1985 nodes 39589 nps 20422 pv g1f3 g8f6 b1c3 b8c6 d2d4 d7d5 c1f4 c8f5
381.797<--1&#58;info depth 11 time 2376 nodes 49413 nps 21295
381.797<--1&#58;info depth 12
383.078<--1&#58;info depth 12 score cp 14 time 3657 nodes 72478 nps 20294 pv g1f3 g8f6 b1c3 b8c6 d2d4 d7d5 c1f4 c8f5 e2e3
383.189<--1&#58;info currmove e2e3 currmovenumber 3
383.234<--1&#58;info currmove d2d3 currmovenumber 4
383.251<--1&#58;info currmove d2d4 currmovenumber 5
383.281<--1&#58;info currmove b2b4 currmovenumber 6
383.297<--1&#58;info currmove a2a4 currmovenumber 7
383.314<--1&#58;info currmove a2a3 currmovenumber 8
383.329<--1&#58;info currmove b2b3 currmovenumber 9
383.359<--1&#58;info currmove c2c4 currmovenumber 10
383.439<--1&#58;info currmove c2c3 currmovenumber 11
383.454<--1&#58;info currmove e2e4 currmovenumber 12
383.517<--1&#58;info currmove f2f4 currmovenumber 13
383.532<--1&#58;info currmove f2f3 currmovenumber 14
383.547<--1&#58;info currmove g2g4 currmovenumber 15
383.564<--1&#58;info currmove g2g3 currmovenumber 16
383.579<--1&#58;info currmove h2h4 currmovenumber 17
383.609<--1&#58;info currmove h2h3 currmovenumber 18
383.642-->1&#58;stop
383.642<--1&#58;info currmove b1a3 currmovenumber 19
383.657<--1&#58;info currmove g1h3 currmovenumber 20
383.672<--1&#58;info depth 12 time 4251 nodes 87771 nps 21142
383.672<--1&#58;bestmove g1f3 ponder g8f6

Fruit 2.1

Code: Select all

34.484<--1&#58;info depth 1
34.484<--1&#58;info depth 1 seldepth 1 score cp 26 time 0 nodes 2 pv b1a3
34.501<--1&#58;info depth 1 seldepth 1 score cp 54 time 0 nodes 3 pv b1c3
34.501<--1&#58;info depth 1 seldepth 1 time 0 nodes 21 nps 0
34.501<--1&#58;info depth 2
34.501<--1&#58;info depth 2 seldepth 2 score cp 0 time 0 nodes 44 pv b1c3 b8c6
34.501<--1&#58;info depth 2 seldepth 2 time 0 nodes 82 nps 0
34.501<--1&#58;info depth 3
34.501<--1&#58;info depth 3 seldepth 3 score cp 54 time 0 nodes 148 pv b1c3 b8c6 g1f3
34.501<--1&#58;info depth 3 seldepth 3 time 0 nodes 186 nps 0
34.501<--1&#58;info depth 4
34.501<--1&#58;info depth 4 seldepth 6 score cp 0 time 0 nodes 300 pv b1c3 b8c6 g1f3 g8f6
34.501<--1&#58;info depth 4 seldepth 6 time 0 nodes 976 nps 0
34.501<--1&#58;info depth 5
34.501<--1&#58;info depth 5 seldepth 9 score cp 48 time 0 nodes 1729 pv b1c3 b8c6 g1f3 g8f6 d2d4
34.501<--1&#58;info depth 5 seldepth 9 time 15 nodes 1933 nps 0
34.501<--1&#58;info depth 6
34.501<--1&#58;info depth 6 seldepth 12 score cp 0 time 15 nodes 3331 pv b1c3 b8c6 g1f3 g8f6 d2d4 d7d5
34.516<--1&#58;info depth 6 seldepth 12 time 15 nodes 9447 nps 0
34.516<--1&#58;info depth 7
34.516<--1&#58;info depth 7 seldepth 14 score cp 42 time 31 nodes 15332 pv b1c3 b8c6 g1f3 g8f6 d2d4 d7d5 c1f4
34.516<--1&#58;info depth 7 seldepth 14 time 31 nodes 16243 nps 0
34.516<--1&#58;info depth 8
34.531<--1&#58;info depth 8 seldepth 17 score cp 0 time 46 nodes 35078 pv b1c3 g8f6 g1f3 b8c6 d2d4 d7d5 c1f4 c8f5
34.579<--1&#58;info depth 8 seldepth 20 time 93 nodes 72286 nps 0
34.579<--1&#58;info depth 9
34.641<--1&#58;info depth 9 seldepth 20 score cp 15 time 156 nodes 125215 pv b1c3 g8f6 g1f3 b8c6 d2d4 d7d5 d1d3 c6b4 d3b5 b4c6
34.672<--1&#58;info depth 9 seldepth 21 time 187 nodes 151298 nps 0
34.672<--1&#58;info depth 10
34.954<--1&#58;info depth 10 seldepth 22 score cp 12 time 421 nodes 330356 pv b1c3 d7d5 d2d4 c8f5 g1f3 g8f6 f3h4 f5g4 h2h3 g4d7
35.017<--1&#58;info depth 10 seldepth 22 score cp 15 time 531 nodes 427686 pv g1f3 b8c6 d2d4 d7d5 b1c3 g8f6 d1d3 g7g6 c1f4 c8f5
35.109<--1&#58;info depth 10 seldepth 24 time 625 nodes 504717 nps 0
35.109<--1&#58;info depth 11
35.485<--1&#58;info time 1000 nodes 790000 nps 790000 cpuload 1000
35.485<--1&#58;info hashfull 17
35.563<--1&#58;info depth 11 seldepth 24 score cp 23 time 1078 nodes 861114 pv g1f3 b8c6 b1c3 g8f6 e2e3 d7d5 f1b5 c8g4 h2h3 g4f5 e1g1
35.578<--1&#58;info currmove b1c3 currmovenumber 2
35.610<--1&#58;info currmove d2d4 currmovenumber 3
35.657<--1&#58;info currmove e2e4 currmovenumber 4
35.703<--1&#58;info currmove d2d3 currmovenumber 5
35.720<--1&#58;info currmove e2e3 currmovenumber 6
35.735<--1&#58;info currmove b1a3 currmovenumber 7
35.735<--1&#58;info currmove g1h3 currmovenumber 8
35.750<--1&#58;info currmove b2b3 currmovenumber 9
35.750<--1&#58;info currmove b2b4 currmovenumber 10
35.750<--1&#58;info currmove g2g3 currmovenumber 11
35.766<--1&#58;info currmove g2g4 currmovenumber 12
35.766<--1&#58;info currmove a2a4 currmovenumber 13
35.781<--1&#58;info currmove h2h4 currmovenumber 14
35.781<--1&#58;info currmove c2c4 currmovenumber 15
35.781<--1&#58;info currmove f2f4 currmovenumber 16
35.781<--1&#58;info currmove c2c3 currmovenumber 17
35.781<--1&#58;info currmove a2a3 currmovenumber 18
35.781<--1&#58;info currmove h2h3 currmovenumber 19
35.798<--1&#58;info currmove f2f3 currmovenumber 20
35.798<--1&#58;info depth 11 seldepth 24 time 1312 nodes 1036135 nps 789737
35.798<--1&#58;info depth 12
35.798<--1&#58;info currmove g1f3 currmovenumber 1
36.484<--1&#58;info time 2000 nodes 1580000 nps 790000 cpuload 1000
36.484<--1&#58;info hashfull 34
36.609<--1&#58;info depth 12 seldepth 28 score cp 10 time 2125 nodes 1684642 pv g1f3 b8c6 b1c3 g8f6 d2d4 d7d5 f3e5 c8f5 e5c6 b7c6 c1f4 a8b8 b2b3
36.609<--1&#58;info currmove b1c3 currmovenumber 2
36.938<--1&#58;info currmove d2d4 currmovenumber 3
37.188-->1&#58;stop
37.203<--1&#58;info time 2718 nodes 2160000 nps 794702 cpuload 1000
37.203<--1&#58;info hashfull 45
37.203<--1&#58;bestmove g1f3 ponder b8c6

Ippolit 0080b

Code: Select all

662.234<--1&#58;info depth 1
662.234<--1&#58;info time 0 nodes 21 nps 0 score cp 1 depth 1 seldepth 2 pv h2h4
662.250<--1&#58;info time 0 nodes 23 nps 0 score cp 6 depth 1 seldepth 2 pv g2g4
662.250<--1&#58;info time 0 nodes 27 nps 0 score cp 29 depth 1 seldepth 2 pv e2e4
662.250<--1&#58;info time 0 nodes 38 nps 0 score cp 58 depth 1 seldepth 2 pv g1f3
662.267<--1&#58;info depth 2
662.267<--1&#58;info time 0 nodes 117 nps 0 score cp 19 depth 2 seldepth 6 pv g1f3 b8c6 b1c3 g8f6 d2d3
662.267<--1&#58;info depth 3
662.267<--1&#58;info currmove g1f3 currmovenumber 1
662.267<--1&#58;info time 0 nodes 216 nps 0 score cp 19 depth 3 seldepth 6 pv g1f3 b8c6 b1c3 g8f6 d2d3
662.267<--1&#58;info currmove e2e4 currmovenumber 2
662.267<--1&#58;info currmove g2g4 currmovenumber 3
662.267<--1&#58;info currmove h2h4 currmovenumber 4
662.267<--1&#58;info currmove h2h3 currmovenumber 5
662.267<--1&#58;info currmove g2g3 currmovenumber 6
662.267<--1&#58;info currmove f2f4 currmovenumber 7
662.267<--1&#58;info currmove f2f3 currmovenumber 8
662.267<--1&#58;info currmove e2e3 currmovenumber 9
662.267<--1&#58;info currmove d2d4 currmovenumber 10
662.267<--1&#58;info currmove d2d3 currmovenumber 11
662.267<--1&#58;info currmove c2c4 currmovenumber 12
662.267<--1&#58;info currmove c2c3 currmovenumber 13
662.267<--1&#58;info currmove b2b4 currmovenumber 14
662.267<--1&#58;info currmove b2b3 currmovenumber 15
662.267<--1&#58;info currmove a2a4 currmovenumber 16
662.267<--1&#58;info currmove a2a3 currmovenumber 17
662.267<--1&#58;info currmove g1h3 currmovenumber 18
662.267<--1&#58;info currmove b1c3 currmovenumber 19
662.267<--1&#58;info currmove b1a3 currmovenumber 20
662.267<--1&#58;info depth 4
662.267<--1&#58;info currmove g1f3 currmovenumber 1
662.267<--1&#58;info time 0 nodes 532 nps 0 score cp 19 depth 4 seldepth 7 pv g1f3 b8c6 b1c3 g8f6 d2d3
662.267<--1&#58;info currmove e2e4 currmovenumber 2
662.267<--1&#58;info currmove g2g4 currmovenumber 3
662.267<--1&#58;info currmove h2h4 currmovenumber 4
662.267<--1&#58;info currmove h2h3 currmovenumber 5
662.282<--1&#58;info currmove g2g3 currmovenumber 6
662.282<--1&#58;info currmove f2f4 currmovenumber 7
662.282<--1&#58;info currmove f2f3 currmovenumber 8
662.282<--1&#58;info currmove e2e3 currmovenumber 9
662.282<--1&#58;info currmove d2d4 currmovenumber 10
662.282<--1&#58;info currmove d2d3 currmovenumber 11
662.282<--1&#58;info currmove c2c4 currmovenumber 12
662.282<--1&#58;info currmove c2c3 currmovenumber 13
662.282<--1&#58;info currmove b2b4 currmovenumber 14
662.282<--1&#58;info currmove b2b3 currmovenumber 15
662.282<--1&#58;info currmove a2a4 currmovenumber 16
662.282<--1&#58;info currmove a2a3 currmovenumber 17
662.282<--1&#58;info currmove g1h3 currmovenumber 18
662.282<--1&#58;info currmove b1c3 currmovenumber 19
662.282<--1&#58;info currmove b1a3 currmovenumber 20
662.282<--1&#58;info depth 5
662.282<--1&#58;info currmove g1f3 currmovenumber 1
662.282<--1&#58;info time 0 nodes 1464 nps 0 score cp 6 depth 5 seldepth 21 pv g1f3 b8c6 b1c3 g8f6 d2d4 d7d6 h2h3 c8e6 e2e4
662.282<--1&#58;info currmove e2e4 currmovenumber 2
662.282<--1&#58;info currmove g2g4 currmovenumber 3
662.282<--1&#58;info currmove h2h4 currmovenumber 4
662.282<--1&#58;info currmove h2h3 currmovenumber 5
662.282<--1&#58;info currmove g2g3 currmovenumber 6
662.282<--1&#58;info currmove f2f4 currmovenumber 7
662.282<--1&#58;info currmove f2f3 currmovenumber 8
662.282<--1&#58;info currmove e2e3 currmovenumber 9
662.282<--1&#58;info currmove d2d4 currmovenumber 10
662.282<--1&#58;info currmove d2d3 currmovenumber 11
662.282<--1&#58;info currmove c2c4 currmovenumber 12
662.297<--1&#58;info currmove c2c3 currmovenumber 13
662.297<--1&#58;info currmove b2b4 currmovenumber 14
662.297<--1&#58;info currmove b2b3 currmovenumber 15
662.297<--1&#58;info currmove a2a4 currmovenumber 16
662.297<--1&#58;info currmove a2a3 currmovenumber 17
662.297<--1&#58;info currmove g1h3 currmovenumber 18
662.297<--1&#58;info currmove b1c3 currmovenumber 19
662.297<--1&#58;info currmove b1a3 currmovenumber 20
662.297<--1&#58;info depth 6
662.297<--1&#58;info currmove g1f3 currmovenumber 1
662.297<--1&#58;info time 0 nodes 1900 nps 0 score cp 6 depth 6 seldepth 21 pv g1f3 b8c6 b1c3 g8f6 d2d4 d7d6 h2h3 c8e6 e2e4
662.297<--1&#58;info currmove e2e4 currmovenumber 2
662.297<--1&#58;info currmove g2g4 currmovenumber 3
662.297<--1&#58;info currmove h2h4 currmovenumber 4
662.297<--1&#58;info currmove h2h3 currmovenumber 5
662.297<--1&#58;info currmove g2g3 currmovenumber 6
662.297<--1&#58;info currmove f2f4 currmovenumber 7
662.297<--1&#58;info currmove f2f3 currmovenumber 8
662.297<--1&#58;info currmove e2e3 currmovenumber 9
662.297<--1&#58;info currmove d2d4 currmovenumber 10
662.297<--1&#58;info currmove d2d3 currmovenumber 11
662.297<--1&#58;info currmove c2c4 currmovenumber 12
662.297<--1&#58;info currmove c2c3 currmovenumber 13
662.297<--1&#58;info currmove b2b4 currmovenumber 14
662.297<--1&#58;info currmove b2b3 currmovenumber 15
662.297<--1&#58;info currmove a2a4 currmovenumber 16
662.297<--1&#58;info currmove a2a3 currmovenumber 17
662.297<--1&#58;info currmove g1h3 currmovenumber 18
662.297<--1&#58;info currmove b1c3 currmovenumber 19
662.314<--1&#58;info currmove b1a3 currmovenumber 20
662.314<--1&#58;info depth 7
662.314<--1&#58;info currmove g1f3 currmovenumber 1
662.314<--1&#58;info time 15 nodes 3201 nps 213000 score cp 7 depth 7 seldepth 25 pv g1f3 b8c6 b1c3 g8f6 h2h3 d7d6 d2d3 c8e6 c1e3 h7h6 f3d4
662.314<--1&#58;info currmove e2e4 currmovenumber 2
662.314<--1&#58;info currmove g2g4 currmovenumber 3
662.314<--1&#58;info currmove h2h4 currmovenumber 4
662.314<--1&#58;info currmove h2h3 currmovenumber 5
662.314<--1&#58;info currmove g2g3 currmovenumber 6
662.314<--1&#58;info currmove f2f4 currmovenumber 7
662.314<--1&#58;info currmove f2f3 currmovenumber 8
662.314<--1&#58;info currmove e2e3 currmovenumber 9
662.314<--1&#58;info currmove d2d4 currmovenumber 10
662.314<--1&#58;info currmove d2d3 currmovenumber 11
662.314<--1&#58;info currmove c2c4 currmovenumber 12
662.314<--1&#58;info currmove c2c3 currmovenumber 13
662.314<--1&#58;info currmove b2b4 currmovenumber 14
662.314<--1&#58;info currmove b2b3 currmovenumber 15
662.314<--1&#58;info currmove a2a4 currmovenumber 16
662.314<--1&#58;info currmove a2a3 currmovenumber 17
662.314<--1&#58;info currmove g1h3 currmovenumber 18
662.314<--1&#58;info currmove b1c3 currmovenumber 19
662.314<--1&#58;info currmove b1a3 currmovenumber 20
662.314<--1&#58;info depth 8
662.314<--1&#58;info currmove g1f3 currmovenumber 1
662.314<--1&#58;info time 31 nodes 4339 nps 139000 score cp 7 depth 8 seldepth 25 pv g1f3 b8c6 b1c3 g8f6 h2h3 d7d6 d2d3 c8e6 c1e3 h7h6 f3d4
662.329<--1&#58;info currmove e2e4 currmovenumber 2
662.329<--1&#58;info currmove g2g4 currmovenumber 3
662.329<--1&#58;info currmove h2h4 currmovenumber 4
662.329<--1&#58;info currmove h2h3 currmovenumber 5
662.329<--1&#58;info currmove g2g3 currmovenumber 6
662.329<--1&#58;info currmove f2f4 currmovenumber 7
662.329<--1&#58;info currmove f2f3 currmovenumber 8
662.329<--1&#58;info currmove e2e3 currmovenumber 9
662.329<--1&#58;info currmove d2d4 currmovenumber 10
662.329<--1&#58;info currmove d2d3 currmovenumber 11
662.329<--1&#58;info currmove c2c4 currmovenumber 12
662.329<--1&#58;info currmove c2c3 currmovenumber 13
662.329<--1&#58;info currmove b2b4 currmovenumber 14
662.329<--1&#58;info currmove b2b3 currmovenumber 15
662.329<--1&#58;info currmove a2a4 currmovenumber 16
662.329<--1&#58;info currmove a2a3 currmovenumber 17
662.329<--1&#58;info currmove g1h3 currmovenumber 18
662.329<--1&#58;info currmove b1c3 currmovenumber 19
662.329<--1&#58;info currmove b1a3 currmovenumber 20
662.329<--1&#58;info depth 9
662.329<--1&#58;info currmove g1f3 currmovenumber 1
662.329<--1&#58;info time 46 nodes 11517 nps 250000 score cp 13 depth 9 seldepth 25 pv g1f3 g8f6 b1c3 b8c6 d2d4 d7d6 e2e4 h7h6 h2h3
662.329<--1&#58;info currmove e2e4 currmovenumber 2
662.329<--1&#58;info currmove g2g4 currmovenumber 3
662.329<--1&#58;info currmove h2h4 currmovenumber 4
662.329<--1&#58;info currmove h2h3 currmovenumber 5
662.329<--1&#58;info currmove g2g3 currmovenumber 6
662.345<--1&#58;info currmove f2f4 currmovenumber 7
662.345<--1&#58;info currmove f2f3 currmovenumber 8
662.345<--1&#58;info currmove e2e3 currmovenumber 9
662.345<--1&#58;info currmove d2d4 currmovenumber 10
662.345<--1&#58;info currmove d2d3 currmovenumber 11
662.345<--1&#58;info currmove c2c4 currmovenumber 12
662.345<--1&#58;info currmove c2c3 currmovenumber 13
662.345<--1&#58;info currmove b2b4 currmovenumber 14
662.345<--1&#58;info currmove b2b3 currmovenumber 15
662.345<--1&#58;info currmove a2a4 currmovenumber 16
662.345<--1&#58;info currmove a2a3 currmovenumber 17
662.345<--1&#58;info currmove g1h3 currmovenumber 18
662.345<--1&#58;info currmove b1c3 currmovenumber 19
662.345<--1&#58;info currmove b1a3 currmovenumber 20
662.345<--1&#58;info depth 10
662.345<--1&#58;info currmove g1f3 currmovenumber 1
662.345<--1&#58;info time 62 nodes 20357 nps 328000 score cp 19 depth 10 seldepth 25 pv g1f3 g8f6 b1c3 b8c6 d2d4 d7d6 e2e4 h7h6 d4d5 c6b4 c1e3 e7e5
662.345<--1&#58;info currmove e2e4 currmovenumber 2
662.345<--1&#58;info currmove g2g4 currmovenumber 3
662.345<--1&#58;info currmove h2h4 currmovenumber 4
662.345<--1&#58;info currmove h2h3 currmovenumber 5
662.345<--1&#58;info currmove g2g3 currmovenumber 6
662.345<--1&#58;info currmove f2f4 currmovenumber 7
662.345<--1&#58;info currmove f2f3 currmovenumber 8
662.345<--1&#58;info currmove e2e3 currmovenumber 9
662.345<--1&#58;info currmove d2d4 currmovenumber 10
662.345<--1&#58;info currmove d2d3 currmovenumber 11
662.359<--1&#58;info currmove c2c4 currmovenumber 12
662.359<--1&#58;info currmove c2c3 currmovenumber 13
662.359<--1&#58;info currmove b2b4 currmovenumber 14
662.359<--1&#58;info currmove b2b3 currmovenumber 15
662.359<--1&#58;info currmove a2a4 currmovenumber 16
662.359<--1&#58;info currmove a2a3 currmovenumber 17
662.359<--1&#58;info currmove g1h3 currmovenumber 18
662.359<--1&#58;info currmove b1c3 currmovenumber 19
662.359<--1&#58;info currmove b1a3 currmovenumber 20
662.359<--1&#58;info depth 11
662.359<--1&#58;info currmove g1f3 currmovenumber 1
662.359<--1&#58;info currmove e2e4 currmovenumber 2
662.359<--1&#58;info currmove g2g4 currmovenumber 3
662.359<--1&#58;info currmove h2h4 currmovenumber 4
662.359<--1&#58;info currmove h2h3 currmovenumber 5
662.359<--1&#58;info currmove g2g3 currmovenumber 6
662.359<--1&#58;info currmove f2f4 currmovenumber 7
662.359<--1&#58;info currmove f2f3 currmovenumber 8
662.359<--1&#58;info currmove e2e3 currmovenumber 9
662.359<--1&#58;info currmove d2d4 currmovenumber 10
662.359<--1&#58;info currmove d2d3 currmovenumber 11
662.359<--1&#58;info currmove c2c4 currmovenumber 12
662.359<--1&#58;info currmove c2c3 currmovenumber 13
662.359<--1&#58;info currmove b2b4 currmovenumber 14
662.359<--1&#58;info currmove b2b3 currmovenumber 15
662.359<--1&#58;info currmove a2a4 currmovenumber 16
662.359<--1&#58;info currmove a2a3 currmovenumber 17
662.359<--1&#58;info currmove g1h3 currmovenumber 18
662.359<--1&#58;info currmove b1c3 currmovenumber 19
662.359<--1&#58;info currmove b1a3 currmovenumber 20
662.359<--1&#58;info depth 11
662.359<--1&#58;info currmove g1f3 currmovenumber 1
663.484-->1&#58;stop
663.516<--1&#58;info time 1281 nodes 646037 nps 504000 score cp 9 depth 13 seldepth 33 pv g1f3 g8f6 b1c3 b8c6 d2d4 d7d5 d1d3 e7e6 e2e4 h7h6 c1f4
663.516<--1&#58;bestmove g1f3
Sven
Posts: 4052
Joined: Thu May 15, 2008 9:57 pm
Location: Berlin, Germany
Full name: Sven Schüle

Re: My recent correspondence with Vasik Rajlich

Post by Sven »

Alexander Schmidt wrote:Well if this accusation is allowed in the public forum, I attach importance to post some defending details also in public. I know it is all discussed, no need to discuss it again. Move it to EOF if you like, but take the initial accusation with it.

Here are some details:

I am always talking about the differences between Ippolit and Rybka, I want to show some details.

Maybe my work encourages someone to proof me wrong. I would be happy about a critical factual discussion. :D

This is not meant as an evidence that Ippolit is no clone of Rybka, but it shows that the engines are different enough to ask for a proof if someone says it's a clone.

After all I am sure Ippolit is NOT based on a decompiled Rybka. In another thread I showed why I think the roots are Kaissa from Vladimir Yelin. BTW it would be a hard challange to decompile Rybka 3, translate the decompiled version to something understandable, and improve the engine along the way by 100 ELO in a half year.

I can not exclude the possibility that parts of Rybka are inside Ippolit. I am thinking about Rybkas so called tables. But they are also in Strelka, it should be easy for an expert to find them in Ippolit. Maybe something else, but who can be sure it is "stolen"? Maybe it is only the idea that was taken, since Strelka many secrets of Rybka are public.
I do consider the theory that the initial working code base of Ippolit was another engine, like Kaissa, as not bad. Indeed I think it is quite likely, taking into account the many differences that have been found between Ippolit and R3, that parts of the Rybka search and/or evaluation might have been incorporated into a different working code base via disassembling, with several adaptations and also many changes of course. I mentioned that possibility in the past already but did not get too much feedback at that time. What would make this really doable IMO is the fact that Ippolit and R3 have (according to the "BB" paper) a very similar, although not identical, board representation based on rotated bitboards.
Alexander Schmidt wrote: But now to the promised facts :)
<details omitted here>
You have already posted that part in the past, nothing new so far. I recall that I replied to it, but never mind, here is my reply again from my current viewpoint:

I think that in the Ippo* case "black box" tests like yours are not sufficient to derive anything from it, since Ippo* has very likely different roots, so the question is much more complex than just "Is Y a clone of X or not?", like in the former clone cases you cited. No doubt: the UCI interface is most probably very different from R3, and so is most probably the move generator. But that does not say where the major components of a chess engine X, search and evaluation, come from and whether resp. how much they are based on another engine Y. Especially you simply can't judge about differences or similarities of the search just by running black box tests and looking at the move choices and/or PVs. We discussed exactly that a while ago, do you remember? A huge number of things influences the result of the search, and even with two identical search implementation you can get very different results just if any of these factors are slightly different.

The only thing that helps, if a comparison of C source code is not possible [at the moment], is the approach of "BB" who really seems to have done a comparison on assembler code level. I'll comment on that later on.

Sven