Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: boundschecking

Author: Uri Blass

Date: 08:05:28 11/04/02

Go up one level in this thread


On November 04, 2002 at 05:58:37, Severi Salminen wrote:

>>I did not try it at this moment but I guess that the problem is that the order
>>of the xor is different in debug and in release mode.
>>
>>I am going to try it later today.
>
>Good, you got it also :) See my other post...

Ok now I have another problem because I hace a crush after more than 4,000,000
nodes

With

__int64 rand64()
{
	return rand()^((__int64)rand()<<15)^((__int64)rand()<<30)^
		((__int64)rand()<<45)^((__int64)rand()<<60);
}

I had no crush and the program could even get depth 12 in the opening position

I decided to replace it by

__int64 rand64()
{
	int a,b,c,d,e;
	a=rand();
	b=rand()<<15;
	c=rand()<<30;
	d=rand()<<45;
	e=rand()<<60;

	return a^((__int64)b)^((__int64)c)^
		((__int64)d)^((__int64)e);
}

The result is that more numbers are the same between debug and release mode
but I get a crush

instruction at 0x00406bf5 reference memory at 0x01f0dd1c
The memory could not be written.

The number of nodes are the same except the last number

Both release mode and debug mode print
2940197 at depth 10

The release mode prints 4222285 and crush some minutes later.

The debug mode has a different behaviour and it seems to go to infinite loop
after 2940197 and does not respond to my commands.

Uri





This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.