Author: Vincent Diepeveen
Date: 10:37:33 11/03/02
Go up one level in this thread
On November 03, 2002 at 13:07:07, Uri Blass wrote: >On November 03, 2002 at 11:50:01, Vincent Diepeveen wrote: > >>On November 03, 2002 at 11:26:42, Brian Kostick wrote: >> >>for windows there is numega boundschecker. >> >>for linux there is the excellent free boundschecker (C only) >>see for example: http://web.inter.nl.net/hcc/Haj.Ten.Brugge/ >> >>however you can also go to the homepage from gcc and then go >>to 'extensions' and download any boundschecker you need for >>use with gcc. it's very good. > >Thanks >I see that I can download a trial version of numega boundchecker so >I guess that I am going to try it tomorrow. > >I use only windows. > >Note that inspite of the unequal number of nodes in debug mode and in release >mode the bug does not seem to prevent it to play well in games. ?? you don't have deterministic number of nodes? Debug it! no need for a boundschecker even to debug that. >The difference is small and I see it only after more than 100000 nodes so maybe >the problem is that the random numbers in debug mode are not the same as the >random numbers in release mode. wait a minute. are you telling me that you use the rand() function in your program to evaluate? Comon you gotta be joking? >The latest tested version solved 292 out of 300 in the Wac test suite at 10 >seconds per move on AMD1000 mega hertz and it is now tested on the GCP test >suite 300 seconds per position. DIEP always did 299 positions, depending upon with some patzer luck the endgame Rb4 was found or not. i never test at 10 seconds a move. Only amateurs do IMHO. in real life you play tournaments at 90 0 as fastest level. that's like 5 minutes first few moves after that your hashtable is loaded already with all kind of cool stuff to fail high. At a P5-100Mhz at around 1996 i remember i solved like 295 positions or so if not more. Something too close to 300 to call is hard :) >The problem with printf happened with another version after I tried to change >the structure of the program and have a seperate function for calculating some >array(The array squareattackking reply the question what piece do I need to put >at square x to get a check against the enemy king and the answer can be >knight,bishop or rook,this array also tells me about indirect checks if the side >to move has no piece in that square) > >My last tested version calculates that array every time after generating moves >in the first 2 plies of the qsearch. > >I do not want to calculate that array in every case that I generate moves in the >qsearch but only in cases that captures did not help to get a cutoff so I >decided first thing to define a function that calculate the array so I can call >it only when I need it but for some reason after implementing it I got strange >results and the results were clearly different in debug mode and in release >mode. > >Adding printf in release mode also changed the results. > >Note that I know that there may be better ideas than calculating the array >but the way that I program is to try to do something better and not to try to do >the best in the first step and I think that generating the array when I need it >is better than my previous method (calculating for every move not based on >arrays) and my attack tables are not good enough to tell me if a rook in an >empty square threats the king(I may change them in the future but I prefer first >to improve movei and there is a big room for improvement even without these kind >of attack tables). > >Uri
This page took 0.01 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.