What do you folks make of this ?

General discussion about computer chess...
hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: What do you folks make of this ?

Post by hyatt » Sun May 13, 2012 6:22 pm

syzygy wrote:
hyatt wrote:Please show me one LINE OF CODE (in Crafty) that uses floats in "TIME MANAGEMENT". Printing a number is NOT "time management" or "time allocation".

Seems pretty simple...

It is NOT "completely natural to use floats."

Otherwise everyone would be doing it. They are not.
:shock: :shock: :shock: :shock: :shock: :shock: :shock:

So if ONE PERSON, which happens to be you, is not using it, then it is not natural?
Is this because this one person happens to be you?
Curious...

Cute. But stupid. How many times have I pointed out that MANY programs were examined during the investigation, and none of 'em used floats anywhere for timing, with the exception of Toga for obvious reasons. So please stop with the "if one person, which happens to be me..." On the contrary, it seems to be the opposite, "if you use floats then it is perfectly natural and everyone should do it." We don't. For good reasons. All previously stated. Time to move on from the insulting nonsense and trying to create arguments about points that are not even being raised. I know of no other program, excepting Fruit and derivatives, that uses floats. And even one well-known derivative changed from floats to ints for good reasons...



syzygy wrote:Maybe not for you but you ARE NOT the measure of all things. Try to let that sick in just once.

You might give that some serious thought yourself. I have actually looked at lots of other source programs due to the ICGA investigation process... What about you???

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: What do you folks make of this ?

Post by BB+ » Sun May 13, 2012 6:55 pm

hyatt wrote:I know of no other program, excepting Fruit and derivatives, that uses floats.
GnuChess 5.07 is an obvious example.

Code: Select all

extern float SearchTime;
extern float TimeLimit[2];
extern int TCinc;
extern float TCTime;
However, it seems that version 2 and version 4 were int-based, so maybe floats are a post-Stanback addition.

syzygy
Posts: 148
Joined: Sun Oct 16, 2011 4:21 pm

Re: What do you folks make of this ?

Post by syzygy » Sun May 13, 2012 8:37 pm

hyatt wrote:Cute. But stupid. How many times have I pointed out that MANY programs were examined during the investigation, and none of 'em used floats anywhere for timing, with the exception of Toga for obvious reasons. So please stop with the "if one person, which happens to be me..."
Even though already common sense tells everybody (except you) that intermediate floating point calculations are natural in the context of time allocation, I have pointed out to you MANY programs that use floating point calculations for intermediate calculations.

Somehow you insist that they are unnatural, or at least "not completely natural":
hyatt wrote:Please show me one LINE OF CODE (in Crafty) that uses floats in "TIME MANAGEMENT". Printing a number is NOT "time management" or "time allocation".

Seems pretty simple...

It is NOT "completely natural to use floats."

Otherwise everyone would be doing it. They are not.
Given that MANY engines use them, the only sense I can make out of this is that since not everybody is using them (because you are not), they are not completely natural.
hyatt wrote:You might give that some serious thought yourself. I have actually looked at lots of other source programs due to the ICGA investigation process... What about you???
What about the many examples I already gave? Are you at all reading? Or is something really wrong?
Last edited by syzygy on Sun May 13, 2012 8:39 pm, edited 1 time in total.

syzygy
Posts: 148
Joined: Sun Oct 16, 2011 4:21 pm

Re: What do you folks make of this ?

Post by syzygy » Sun May 13, 2012 8:38 pm

BB+ wrote:
hyatt wrote:I know of no other program, excepting Fruit and derivatives, that uses floats.
GnuChess 5.07 is an obvious example.

Code: Select all

extern float SearchTime;
extern float TimeLimit[2];
extern int TCinc;
extern float TCTime;
However, it seems that version 2 and version 4 were int-based, so maybe floats are a post-Stanback addition.
But I guess you see what I mean now?

User avatar
marcelk
Posts: 52
Joined: Fri Jan 28, 2011 10:27 pm
Real Name: Marcel van Kervinck

Re: What do you folks make of this ?

Post by marcelk » Sun May 13, 2012 10:30 pm

BB+ wrote:
hyatt wrote:I know of no other program, excepting Fruit and derivatives, that uses floats.
GnuChess 5.07 is an obvious example.

Code: Select all

extern float SearchTime;
extern float TimeLimit[2];
extern int TCinc;
extern float TCTime;
However, it seems that version 2 and version 4 were int-based, so maybe floats are a post-Stanback addition.
GnuChess5 is not the only one and Hyatt should be aware of that because it has been pointed out to him less than a month ago. Either he is dishonest here, or he considers Gaviota, Sjeng, Stockfish and even the 1997 version of Rookie all as "Fruit derivatives". If he upholds the latter I don't know how to respond, but it won't be mild.

syzygy
Posts: 148
Joined: Sun Oct 16, 2011 4:21 pm

Re: What do you folks make of this ?

Post by syzygy » Sun May 13, 2012 11:56 pm

marcelk wrote:GnuChess5 is not the only one and Hyatt should be aware of that because it has been pointed out to him less than a month ago. Either he is dishonest here, or he considers Gaviota, Sjeng, Stockfish and even the 1997 version of Rookie all as "Fruit derivatives". If he upholds the latter I don't know how to respond, but it won't be mild.
Clearly there can be only one conclusion: Gaviota, Sjeng, Stockfish and Fruit are all clones of 1997 Rookie.

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: What do you folks make of this ?

Post by hyatt » Mon May 14, 2012 3:30 am

BB+ wrote:
hyatt wrote:I know of no other program, excepting Fruit and derivatives, that uses floats.
GnuChess 5.07 is an obvious example.

Code: Select all

extern float SearchTime;
extern float TimeLimit[2];
extern int TCinc;
extern float TCTime;
However, it seems that version 2 and version 4 were int-based, so maybe floats are a post-Stanback addition.

I have not looked at the later 5.x versions. I looked at a couple of early 5.x versions at the request of Stuart Cracraft, way back when...

However, I see two issues here... and they are being BADLY mangled.

1. using a float throughout the time control code, as is done in Fruit. Very unusual, because system time is always returned as an int, which makes a conversion necessary (even if done via fild). Doing that is a really bad idea for lots of reasons, one being interaction with SSE optimizations when they are allowed/used.

2. using an int for the target time and comparisons, but using float calculations to compute the int target time and max time limits (I assume because they don't want to think of the obvious ways to avoid excessive truncation issues or whatever).. Ints make sense, floats do not, but if you want to use floating operations to produce an int, it is only done once per search and is pretty much irrelevant. Using floats inside the search are not irrelevant at all.

These anti-panel guys are trying to make everyone think the two cases are the same. They most certainly are not. Yet they are trying to claim that doing one is the same as doing the other. And trying to distort the (relatively unimportant) point about the floating comparison in Rybka that appears to be related to Fruit. Anything to push the discussion away from the facts presented in the panel report / evidence, and push the discussion off to unrelated issues that have absolutely no bearing on the outcome at all...

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: What do you folks make of this ?

Post by hyatt » Mon May 14, 2012 3:33 am

marcelk wrote:
BB+ wrote:
hyatt wrote:I know of no other program, excepting Fruit and derivatives, that uses floats.
GnuChess 5.07 is an obvious example.

Code: Select all

extern float SearchTime;
extern float TimeLimit[2];
extern int TCinc;
extern float TCTime;
However, it seems that version 2 and version 4 were int-based, so maybe floats are a post-Stanback addition.
GnuChess5 is not the only one and Hyatt should be aware of that because it has been pointed out to him less than a month ago. Either he is dishonest here, or he considers Gaviota, Sjeng, Stockfish and even the 1997 version of Rookie all as "Fruit derivatives". If he upholds the latter I don't know how to respond, but it won't be mild.

OOhhh... I am simply shaking in my boots...

Are you saying ALL the above programs use a floating point target time? If so, it IS nonsensical. If you are saying they use integer values, with a floating point calculation used to set the integer value, so what? I've been clear as to what _I_ am talking about. You seem to think that just using a single floating point operation makes the time control code floating point. Try again...

syzygy
Posts: 148
Joined: Sun Oct 16, 2011 4:21 pm

Re: What do you folks make of this ?

Post by syzygy » Mon May 14, 2012 7:50 pm

hyatt wrote:However, I see two issues here... and they are being BADLY mangled.
You already tried this on TalkChess one month ago, maybe you forgot.

We have been talking all the time about time allocation, i.e. calculating the time allocated for the search. There are no two issues here.

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: What do you folks make of this ?

Post by hyatt » Tue May 15, 2012 12:50 am

syzygy wrote:
hyatt wrote:However, I see two issues here... and they are being BADLY mangled.
You already tried this on TalkChess one month ago, maybe you forgot.

We have been talking all the time about time allocation, i.e. calculating the time allocated for the search. There are no two issues here.

Floating point calculations are STILL lazy. But they work. But that has nothing to do with Fruit / Rybka. Fruit uses the ugly float-everywhere approach where he uses doubles everywhere, including the functions like my_timer_elapsed_cpu() and such. Ugly is not the word.

A minor piece of evidence was the 0.0 in Rybka, which matches up with the 0.0 comparison in fruit. In Fruit it is reasonable since everything is done as floating point. In Rybka, it is NOT reasonable since Vas made the obvious conversion to ints, particularly when one might use the SIMD stuff for bitboards. The early implementations did not allow one to use MMX AND floating-point at the same time, so a floating point timer would be horrible. It got better in recent instantiations of the SSE stuff.

So all our evidence shows is an odd floating point comparison in code that is purely integer based (in Rybka). And since the two blocks of code look so similar, it offers a simple inference suggesting something untoward. Something that was NOT considered "a smoking gun" using Ed's favorite expression. The "smoking gun" to me was all the eval implementation details matching so well...

In older versions, the smoking gun was everything, of course, since everything matched excluding UCI...

However, as far as the "floating point / integer" stuff goes, CS 101 discourages mixing modes. In fact, one would find that impossible to do in some languages (such as Pascal). There are good reasons why not mixing integer math with floating math is encouraged. Reasons anyone dealing with computer science would understand. There are more pitfalls than benefits. Anybody can drive a nail with a screwdriver, if they hit it hard enough, and often enough. But there are better tools to make that a lot easier and more efficient...

Post Reply