IvanHoe 999946 Beta

Discussion about chess-playing software (engines, hosts, opening books, platforms, etc...)
Post Reply
User avatar
kingliveson
Posts: 1388
Joined: Thu Jun 10, 2010 1:22 am
Real Name: Franklin Titus
Location: 28°32'1"N 81°22'33"W

IvanHoe 999946 Beta

Post by kingliveson » Tue Nov 01, 2011 6:20 am

IvanHoe 999946 Beta source code released. Along is also updated RobboBase Library and Comrade GUI... Glad to see work is still being done on the project.
diff -abBdEHrw IvanHoe-Beta-999947c/evaluation.c IvanHoe-Beta-999946a/evaluation.c
164c164
<       if ((wBitboardP & ~FILEh) == 0
---
>       if (!(wBitboardP & ~FILEh)
167c167,171
<       if ((wBitboardP & ~FILEa) == 0
---
>       if (!(wBitboardP & ~FILEa)
> 	  && (bBitboardK | AttK[POSITION->bKsq]) & SqSet[A8])
> 	POSITION->DYN->Value = 0;
>       if (POSITION->sq[B6] == wEnumP && POSITION->sq[B7] == bEnumP
> 	  && !(wBitboardP & ~FILEb)
169a174,177
>       if (POSITION->sq[G6] == wEnumP && POSITION->sq[G7] == bEnumP
> 	  && !(wBitboardP & ~FILEg)
> 	  && (bBitboardK | AttK[POSITION->bKsq]) & SqSet[H8])
> 	POSITION->DYN->Value = 0;
190a199,206
>       if (POSITION->sq[B3] == bEnumP && POSITION->sq[B2] == wEnumP
> 	  && !(bBitboardP & ~FILEb)
> 	  && (wBitboardK | AttK[POSITION->wKsq]) & SqSet[A1])
> 	POSITION->DYN->Value = 0;
>       if (POSITION->sq[G3] == bEnumP && POSITION->sq[G2] == wEnumP
> 	  && !(bBitboardP & ~FILEg)
> 	  && (wBitboardK | AttK[POSITION->wKsq]) & SqSet[H1])
> 	POSITION->DYN->Value = 0;
304a321,328
>       if (POSITION->sq[B6] == wEnumP && POSITION->sq[B7] == bEnumP
> 	  && !(wBitboardP & ~FILEb)
> 	  && (bBitboardK | AttK[POSITION->bKsq]) & SqSet[A8])
> 	POSITION->DYN->Value = 0;
>       if (POSITION->sq[G6] == wEnumP && POSITION->sq[G7] == bEnumP
> 	  && !(wBitboardP & ~FILEg)
> 	  && (bBitboardK | AttK[POSITION->bKsq]) & SqSet[H8])
> 	POSITION->DYN->Value = 0;
325a350,357
>       if (POSITION->sq[B3] == bEnumP && POSITION->sq[B2] == wEnumP
> 	  && !(bBitboardP & ~FILEb)
> 	  && (wBitboardK | AttK[POSITION->wKsq]) & SqSet[A1])
> 	POSITION->DYN->Value = 0;
>       if (POSITION->sq[G3] == bEnumP && POSITION->sq[G2] == wEnumP
> 	  && !(bBitboardP & ~FILEg)
> 	  && (wBitboardK | AttK[POSITION->wKsq]) & SqSet[H1])
> 	POSITION->DYN->Value = 0;
364a397
>   boolean STORE_EVAL_HASH = TRUE;
389a423,428
> 	  if (!(wBitboardOcc ^ (wBitboardBL | wBitboardK | wBitboardP)) ||
> 	      !(wBitboardOcc ^ (wBitboardBD | wBitboardK | wBitboardP)))
> 	    POSITION->DYN->flags |= 32;
> 	  if (!(bBitboardOcc ^ (bBitboardBL | bBitboardK | bBitboardP)) ||
> 	      !(bBitboardOcc ^ (bBitboardBD | bBitboardK | bBitboardP)))
> 	    POSITION->DYN->flags |= 64;
417,418c456
<       int va;
<       /* boolean PROBING_WEAK = (HEIGHT (POSITION) >= TRIPLE_WEAK_HEIGHT); */
---
>       int va, v;
420,421c458,460
<       if (TRIPLE_VALUE (POSITION, &va, depth < TRIPLE_DEFINITE_PROBE_DEPTH &&
< 			HEIGHT (POSITION) > TRIPLE_DEFINITE_PROBE_HEIGHT, FALSE))
---
>       if ((v = TRIPLE_VALUE
> 	   (POSITION, &va, depth < TRIPLE_DEFINITE_PROBE_DEPTH &&
> 	    HEIGHT (POSITION) > TRIPLE_DEFINITE_PROBE_HEIGHT, FALSE)) == TRUE)
439a479,480
>       if (v == FALSE) /* mere */
> 	STORE_EVAL_HASH = FALSE;
465,466c506,507
< #define WHITE_MINOR_ONLY (8 << 2)
< #define BLACK_MINOR_ONLY (16 << 2)
---
> #define WHITE_MINOR_ONLY (POSITION->DYN->flags & 32)
> #define BLACK_MINOR_ONLY (POSITION->DYN->flags & 64)
468,469c509
<   if ((POSITION->DYN->flags & WHITE_MINOR_ONLY
<        || POSITION->DYN->flags & BLACK_MINOR_ONLY)
---
>   if ((WHITE_MINOR_ONLY || BLACK_MINOR_ONLY)
473,476c513,514
<   if ((POSITION->DYN->flags & WHITE_MINOR_ONLY
<        && PAWN_INFO->wPfile_count <= 1)
<       || (POSITION->DYN->flags & BLACK_MINOR_ONLY
< 	  && PAWN_INFO->bPfile_count <= 1)
---
>   if ((WHITE_MINOR_ONLY && PAWN_INFO->wPfile_count <= 1)
>       || (BLACK_MINOR_ONLY && PAWN_INFO->bPfile_count <= 1)
1351,1352c1389
<       if ((OpenFileB & POSITION->DYN->
< 	   wAtt & ~POSITION->DYN->bAtt) == 0)
---
>       if ((OpenFileB & POSITION->DYN->wAtt & ~POSITION->DYN->bAtt) == 0)
1415d1451
< #define WHITE_HAS_PIECE (POSITION->DYN->flags & 2)
1417c1453,1468
< #define BLACK_HAS_PIECE (POSITION->DYN->flags & 1)
---
> #define WHITE_HAS_PIECE (wBitboardOcc ^ (wBitboardK | wBitboardP))
> #define BLACK_HAS_PIECE (bBitboardOcc ^ (bBitboardK | bBitboardP))
> #define BitBoard3(x, y, z) ((1ULL << (x)) | (1ULL << (y)) | (1ULL << (z)))
> #define BitBoard4(w, x, y, z) ((1ULL << (w)) | (1ULL << (x)) | (1ULL << (y)) | (1ULL << (z)))
> #define A7A8B8 BitBoard3 (A7, A8, B8)
> #define F8G8H8 BitBoard3 (F8, G8, H8)
> #define E8F8G8H8 BitBoard4 (E8, F8, G8, H8)
> #define H7G8H8 BitBoard3 (H7, G8, H8)
> #define A8B8C8D8 BitBoard4 (A8, B8, C8, D8)
> #define A8B8C8 BitBoard3 (A8, B8, C8)
> #define A1B1A2 BitBoard3 (A1, B1, A1)
> #define F1G1H1 BitBoard3 (F1, G1, H1)
> #define E1F1G1H1 BitBoard4 (E1, F1, G1, H1)
> #define G1H1H2 BitBoard3 (G1, H1, H2)
> #define A1B1C1D1 BitBoard4 (A1, B1, C1, D1)
> #define A1B1C1 BitBoard3 (A1, B1, C1)
1427c1478
< 	Value = 0;
---
> 	Value = 0; /* patt */
1455c1506,1532
< 	  if (!wBitboardP)
---
> 	  if (wBitboardBL)
> 	    {
> 	      if (POSITION->sq[B6] == wEnumP && POSITION->sq[B7] == bEnumP
> 		  && !(wBitboardP & ~SqSet[B6]) && !(bBitboardP & ~FILEb)
> 		  && !((bBitboardP >> 8) & ~POSITION->OccupiedBW)
> 		  && !(wBitboardBL & (wBitboardBL - 1)) /* one bit */
> 		  && (bBitboardK & B8C8D8) && !(wBitboardK & A7A8B8))
> 		Value = 0;
> 	      if (POSITION->sq[G6] == wEnumP && POSITION->sq[G7] == bEnumP
> 		  && !((wBitboardP | bBitboardP) & ~FILEg)
> 		  && (bBitboardK & E8F8G8H8) && !(wBitboardK & H7G8H8))
> 		Value = 0;
> 	    }
> 	  if (wBitboardBD)
> 	    {
> 	      if (POSITION->sq[B6] == wEnumP && POSITION->sq[B7] == bEnumP
> 		  && !((wBitboardP | bBitboardP) & ~FILEb)
> 		  && (bBitboardK & A8B8C8D8) && !(wBitboardK & A7A8B8))
> 		Value = 0;
> 	      if (POSITION->sq[G6] == wEnumP && POSITION->sq[G7] == bEnumP
> 		  && !(wBitboardP & ~SqSet[G6]) && !(bBitboardP & ~FILEg)
> 		  && !((bBitboardP >> 8) & ~POSITION->OccupiedBW)
> 		  && !(bBitboardBL & (bBitboardBL - 1)) /* one bit */
> 		  && (bBitboardK & F8G8H8) && !(wBitboardK & H7G8H8))
> 		Value = 0;
> 	    }
> 	  if (!wBitboardP) /* valid ? */
1468c1545
< 	Value = 0;
---
> 	Value = 0; /* patt */
1496c1573,1599
< 	  if (!bBitboardP)
---
> 	  if (bBitboardBL)
> 	    {
> 	      if (POSITION->sq[B3] == bEnumP && POSITION->sq[B2] == wEnumP
> 		  && !((bBitboardP | wBitboardP) & ~FILEb)
> 		  && (wBitboardK & A1B1C1D1) && !(bBitboardK & A1B1A2))
> 		Value = 0;
> 	      if (POSITION->sq[G3] == bEnumP && POSITION->sq[G2] == wEnumP
> 		  && !(bBitboardP & ~SqSet[G3]) && !(wBitboardP & ~FILEg)
> 		  && !((wBitboardP << 8) & ~POSITION->OccupiedBW)
> 		  && !(bBitboardBL & (bBitboardBL - 1)) /* one bit */
> 		  && (wBitboardK & F1G1H1) && !(bBitboardK & G1H1H2))
> 		Value = 0;
> 	    }
> 	  if (bBitboardBD)
> 	    {
> 	      if (POSITION->sq[B3] == bEnumP && POSITION->sq[B2] == wEnumP
> 		  && !(bBitboardP & ~SqSet[B3]) && !(wBitboardP & ~FILEb)
> 		  && !((wBitboardP << 8) & ~POSITION->OccupiedBW)
> 		  && !(bBitboardBD & (bBitboardBD - 1)) /* one bit */
> 		  && (wBitboardK & A1B1C1) && !(bBitboardK & A1B1A2))
> 		Value = 0;
> 	      if (POSITION->sq[G3] == bEnumP && POSITION->sq[G2] == wEnumP
> 		  && !((bBitboardP | wBitboardP) & ~FILEg)
> 		  && (wBitboardK & E1F1G1H1) && !(bBitboardK & G1H1H2))
> 		Value = 0;
> 	    }
> 	  if (!bBitboardP) /* valid ? */
1523a1627
>   if (STORE_EVAL_HASH)


Time permitting, a build should be available soon...
PAWN : Knight >> Bishop >> Rook >>Queen

User avatar
kingliveson
Posts: 1388
Joined: Thu Jun 10, 2010 1:22 am
Real Name: Franklin Titus
Location: 28°32'1"N 81°22'33"W

Re: IvanHoe 999946 Beta

Post by kingliveson » Wed Nov 02, 2011 1:55 am

Code: Select all

1 IvanHoe version 999946a-RobboLib: 2801  300 (+ 54,=193,- 53), 50.2 %

IvanHoe 9.47b x64             : 300 (+ 54,=193,- 53), 50.2 %

2 IvanHoe 9.47b x64         : 2799  300 (+ 53,=193,- 54), 49.8 %

IvanHoe version 999946a-RobboLib: 300 (+ 53,=193,- 54), 49.8 %
Ponder on, 1 core test...
Attachments
20111101_iv_iv_1m_300r.pgn
(986.39 KiB) Downloaded 515 times
PAWN : Knight >> Bishop >> Rook >>Queen

Jeremy Bernstein
Site Admin
Posts: 1226
Joined: Wed Jun 09, 2010 7:49 am
Real Name: Jeremy Bernstein
Location: Berlin, Germany
Contact:

Re: IvanHoe 999946 Beta

Post by Jeremy Bernstein » Wed Nov 02, 2011 1:57 am

kingliveson wrote:

Code: Select all

1 IvanHoe version 999946a-RobboLib: 2801  300 (+ 54,=193,- 53), 50.2 %

IvanHoe 9.47b x64             : 300 (+ 54,=193,- 53), 50.2 %

2 IvanHoe 9.47b x64         : 2799  300 (+ 53,=193,- 54), 49.8 %

IvanHoe version 999946a-RobboLib: 300 (+ 53,=193,- 54), 49.8 %
Ponder on, 1 core test...
== no difference, but at least they didn't break anything. ;)

jb

User avatar
kingliveson
Posts: 1388
Joined: Thu Jun 10, 2010 1:22 am
Real Name: Franklin Titus
Location: 28°32'1"N 81°22'33"W

Re: IvanHoe 999946 Beta

Post by kingliveson » Wed Nov 02, 2011 7:05 pm

This release was geared towards general library for tablebases access -- and to make integration easier for other engines/GUIs . I am just glad to see the project is at least still on going.

x64 Linux/Windows binaries/libraries attached. The rest of the builds will come later. oh, I believe this only works with the newer RobboBases.

Code: Select all

0d6400001c2e577696c0aece00a4d74e  Linux/IvanHoe999946a
aa5bbfc9923f0d06bc31d4478d13dd13  Linux/RobboBaseLib.so
702dfc0062d0673646c75b5cce4d9e9e  Windows/IvanHoe999946a.exe
957d2342294598497ad840af296c09a3  Windows/RobboBaseLib.dll
Attachments
IvanHoe999946a.7z
(649.73 KiB) Downloaded 1135 times
PAWN : Knight >> Bishop >> Rook >>Queen

User avatar
kingliveson
Posts: 1388
Joined: Thu Jun 10, 2010 1:22 am
Real Name: Franklin Titus
Location: 28°32'1"N 81°22'33"W

Re: IvanHoe 999946 Beta

Post by kingliveson » Thu Nov 03, 2011 4:18 pm

Per RobboBases usage with this IvanHoe build:

RobboBaseDynamicLibraryFile field is for libraries .so (Linux) and .dll (Windows). It should be left untouched in most cases because the engine will look in the current working directory for these files.

I dont think it works with older RobboTripleBase found here. I have tested the newer ones and it works. Some time before end of the year, the newer RobboBases (up to 5 men) should be uploaded to chess.cygnitec.com.

Edit: If the engine wont load for some reason, it could be due to not having Microsoft Visual C++ 2010 Redistributable Package (x64) installed. Correction will be made on the final build.
PAWN : Knight >> Bishop >> Rook >>Queen

Prima
Posts: 328
Joined: Tue Dec 14, 2010 6:12 am

Re: IvanHoe 999946 Beta

Post by Prima » Fri Nov 04, 2011 3:34 am

By the way Kingliveson, thanks for your usual stable, multi-platform build/s.

User avatar
robbolito
Posts: 601
Joined: Thu Jun 10, 2010 3:48 am

Re: IvanHoe 999946 Beta

Post by robbolito » Fri Nov 04, 2011 6:53 pm

Intel(R) Core(TM)2 Quad Q9550 2.83GHz4x @3.5 GHz 4,096 MB Memory
Microsoft Windows XP.x64 Professional Service Pack 2 (Build 3790)
Fritz Benchmark:
Speed: 20.90
KNS: 10032
GUI: CB Rybka 3
Book: Perfect 2009-10 moves
Hash: 256
GTB and RB: ON
Ponder: OFF
Blitz:5' 0

Code: Select all

1   Houdini 1.5a x64   3195  +40/-17/=73 58.85%   76.5/130
2   IvanHoe 9.46b x64  3190  +17/-40/=73 41.15%   53.5/130
No more crashes using RBs.
Full RBs ( 125 GB)
Attachments
Q 9550 Testing.rar
(172.99 KiB) Downloaded 431 times

User avatar
robbolito
Posts: 601
Joined: Thu Jun 10, 2010 3:48 am

Re: IvanHoe 999946 Beta

Post by robbolito » Fri Nov 04, 2011 7:04 pm

Intel(R) Core(TM) i5 Q- 750 @2.67 GHz 6.00 GB Memory
Windows 7.x64 Professional (Build 7600)
Fritz Benchmarks:
Speed:16.84
KNS: 8082
GUI: CB Rybka 3
Hash: 256
Book: Perfect 2009-10 moves
GTB and RB: ON
Blitz:5' 0

Code: Select all

1   Houdini 1.5a x64   3195  +43/-15/=82 60.00%   84.0/140
2   IvanHoe 9.46b x64  3190  +15/-43/=82 40.00%   56.0/140

Attachments
I5 Testing.rar
(198.59 KiB) Downloaded 429 times

User avatar
robbolito
Posts: 601
Joined: Thu Jun 10, 2010 3:48 am

Re: IvanHoe 999946 Beta

Post by robbolito » Fri Nov 04, 2011 7:55 pm

AMD Phenom(tm) II X6 1090T Processor x6 @ 3.20 GHz - 8.00MB Memory
Windows 7 Home Premium Edition (Build 7600)
Fritz Benchmark:
Speed: 23.33
KNS: 11196
GUI: CB Rybka 3
Book: Rybka 4- 10 moves
Hash: 256
RB and GTB: ON
Ponder: ON
Blitz:5' 0

Code: Select all

1   Houdini 1.5a x64   3195  +53/-13/=74 64.29%   90.0/140
2   IvanHoe 9.46b x64  3190  +13/-53/=74 35.71%   50.0/140

In total 410 games and not a single crash using new RBs.If only the strength of the engine could be improved.

Attachments
AMD x6 W7 Games.rar
(208.93 KiB) Downloaded 434 times

User avatar
kingliveson
Posts: 1388
Joined: Thu Jun 10, 2010 1:22 am
Real Name: Franklin Titus
Location: 28°32'1"N 81°22'33"W

Re: IvanHoe 999946 Beta

Post by kingliveson » Sat Nov 05, 2011 7:06 am

IvanHoe 999946a Linux/Windows 32/64 bit builds are available @ http://chess.cygnitec.com/engine/ivanhoe/.

The included pdf files answer many usage questions; eg: UCI options, RobboBases, perft, montecarlo, benchmark, etc. Some features are only available in Mode_Analysis. All I did was extracted/converted documentation the authors provided.

2071de8463a5310ff521fc6d479500d7 IvanHoe999946a.7z

Code: Select all

ace20fb4fbab7e9e8fc8c60a72bf6198  ./Linux/Mode_Analysis/x86-64/IvanHoe999946a
808dc322f4bf3aabc896ef42fafcd920  ./Linux/Mode_Analysis/x86-32/IvanHoe999946a
aa5bbfc9923f0d06bc31d4478d13dd13  ./Linux/Mode_Game_Play/x86-64/RobboBaseLib.so
b46601e45712633da57e745c1aeb3964  ./Linux/Mode_Game_Play/x86-64/IvanHoe999946a
aa5bbfc9923f0d06bc31d4478d13dd13  ./Linux/Mode_Game_Play/x86-32/RobboBaseLib.so
dcf1c658748993ca3de248a53f29929d  ./Linux/Mode_Game_Play/x86-32/IvanHoe999946a
92208e2933c1eb15bba82ebe31f299b3  ./Windows/Mode_Analysis/x86-64/IvanHoe999946a.exe
064c4c61a3304dd3dca9e69bbe8a5b3c  ./Windows/Mode_Analysis/x86-32/IvanHoe999946a.exe
958edeb0651932431a0e060da76e5403  ./Windows/Mode_Game_Play/x86-64/RobboBaseLib.dll
b550dc86f6f877fe5e78784ce32115fa  ./Windows/Mode_Game_Play/x86-64/IvanHoe999946a.exe
d7b614dbce7f160a26599828a13fe4ab  ./Windows/Mode_Game_Play/x86-32/RobboBaseLib.dll
7d1ca3f84f7851cdbcf9f710ed86345e  ./Windows/Mode_Game_Play/x86-32/IvanHoe999946a.exe
Thanks to the developers for this update!
PAWN : Knight >> Bishop >> Rook >>Queen

Post Reply