The use of bubble sort in crafty is one of those little ironies...bob wrote:Crafty uses insertion sort in next.c (2 places I think). It uses a plain bubble sort, but with an early exit (if no two values are exchanged it terminates rather than going for N-1 iterations regardless...michiguel wrote:The shocking fact is that someone is using bubble sortDann Corbit wrote:It can be safely said that Crafty's code is beyond reproach.bob wrote:I hold the copyright on _the_ bubble sort in crafty, yes. Not on the bubble sort idea, but on that specific code, along with everything else in there that I wrote. That was simple, wawsn't it. What PD code was in the Crafty that was copied into Fruit? Today's crafty certainly has Pradu's magic move generation code, attributed to him in the comments. The version copied and used in Rybka certainly did not. Please identify any PD code in Crafty, by specific source file name and line numbers, for the 19.0 version used as the basis for Rybka's bitboard code...Milos wrote:So it means you hold copyright on bubble sort in Crafty?bob wrote:Here's the problem, "there is NO public domain code in either program."
Interesting, I thought the very same implementation of bubble sort you copied verbatim from Knuth...
Clearly you are lying (since there is obviously quite a bit of PD code in Crafty), so why would anyone trust you when you make your usual baseless accusations?
ball is in your court... You certainly ought to be able to go to "sorting and searching" by Knuth and cite the exact page where the code was copied "verbatim", correct? Actually, if you look carefully, Crafty uses _TWO_ different types of sorts, depending on whether it is a full-width node or a quiiece-only node. And the code looks nothing like the code you claim I copied "verbatim".
But, your turn...
BTW, you are now trying to justify your "Robolito/etc/Houdini is legal" on the real "stretch" that all Houdart copied into Houdini was the sort code from Crafty? Are you sure that code is in Robolito?Did you see my _explicit_ reference to the bitboard code (particularly the initialization) that is in Robolito?
We've done been down this road once in the Fruit / Rybka discussion. Same lame arguments Each was disproved, over time, by massive evidence. Houdini's day will come, too. Yuri has already commented on it. But don't let that disturb your thinking... Nor any of the other posts concerning Robo and Houdini. Hang on to that dream for as long as you can...
All contributed code is clearly documented. The historical commentary found in main.c is the example for all programmers to follow.
It would be a benefit to mankind if not just every computer chess program but every program in general were programmed and documented in this way.
As far as the implementation of bubble sort, it is also obvious that Dr. Hyatt has copyright on his own implementation. Failure to understand this is failure to understand what "copyright" means.
Yes, I am a Dr. Hyatt fan, I freely admit. However, that has nothing to do with my opinion on this matter.
Is Crafty using bubble sort or this is one the gazillion Byzantine discussions we see in CCC?
I bet the latter.
Miguel
Bubble sort has a single case where it performs well. That case is where the data is very nearly sorted to start with. In the case of the spot in crafty where it is used, that is indeed the case in point. Despite my well intentioned attempts to improve crafty via insertion sort, it turned out actually inferior, and so the code was reverted back to bubble sort.