OliThink 5.9.5 has only 44 kByte or 1500 lines of code.
It's even smaller than its predecessor OliThink4, which is very compact.
The mobility evaluation is very small. There are no pre-computed or texelian numbers.
Still there are quite a couple of bugs in search and pruning.
OliThink supports MacOSX, Linux and Windows and there is a 1:1 translation into Java.
OliThink 5.9.5 is very small
Moderators: hgm, Rebel, chrisw
-
- Posts: 725
- Joined: Tue Dec 18, 2007 9:38 pm
- Location: Munich, Germany
- Full name: Dr. Oliver Brausch
-
- Posts: 12563
- Joined: Wed Mar 08, 2006 8:57 pm
- Location: Redmond, WA USA
Re: OliThink 5.9.5 is very small
I made a version with variable sized hash tables:
I kept the power of 2 thing, but allowed whatever fits within the request:
memory N
where N is megabytes.
I kept the power of 2 thing, but allowed whatever fits within the request:
memory N
where N is megabytes.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
-
- Posts: 725
- Joined: Tue Dec 18, 2007 9:38 pm
- Location: Munich, Germany
- Full name: Dr. Oliver Brausch
Re: OliThink 5.9.5 is very small
Thank you very much, Dann!
May I use your code within the next version of OliThink, with some changes?
May I use your code within the next version of OliThink, with some changes?
-
- Posts: 12563
- Joined: Wed Mar 08, 2006 8:57 pm
- Location: Redmond, WA USA
Re: OliThink 5.9.5 is very small
Of course, any changes I make you can use without asking permission. IOW, you have my implicit permission to use any tweaks I ever make to Olithink.
I looked at the code, and I think I left out initialization of the last hash element. So that's a bug.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
-
- Posts: 2876
- Joined: Wed Mar 08, 2006 10:09 pm
- Location: Germany
- Full name: Werner Schüle
Re: OliThink 5.9.5 is very small
Hi Dann,Dann Corbit wrote: ↑Wed May 19, 2021 3:01 am I made a version with variable sized hash tables:
I kept the power of 2 thing, but allowed whatever fits within the request:
memory N
where N is megabytes.
how to use inside Arena=
commandline parameter Memory 256 does not work here ?
or
startcommand Memory 256 does not work here ?
thanks
Werner
-
- Posts: 135
- Joined: Tue Mar 05, 2019 3:43 pm
- Full name: Archimedes
Re: OliThink 5.9.5 is very small
It also works on Android (tested with Chess for Android).
OliThink 5.9.5 for Android:
https://app.box.com/s/ga6nnh7fxw01mg7hxuqe3ixv9ivgy0zs
-
- Posts: 2495
- Joined: Tue Aug 30, 2016 8:19 pm
- Full name: Rasmus Althoff
Re: OliThink 5.9.5 is very small
But memory=1 is missing in the feature announcent in line 1529 so that this will not be used. From http://hgm.nubati.net/CECP.html:
memory N
Specifies the engine can use at most N megabytes of memory. Only sent when the engine requested it through feature memory=1, and never during a game.
Also, stdlib.h should be included to use calloc() (in which case the integer variable random needs to be renamed), and the scanf() in line 1552 is using the wrong format string for the type size_t of the variable wanted.
Rasmus Althoff
https://www.ct800.net
https://www.ct800.net
-
- Posts: 12563
- Joined: Wed Mar 08, 2006 8:57 pm
- Location: Redmond, WA USA
Re: OliThink 5.9.5 is very small
Amazing that I can generate so many bugs with about ten new lines of code.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
-
- Posts: 725
- Joined: Tue Dec 18, 2007 9:38 pm
- Location: Munich, Germany
- Full name: Dr. Oliver Brausch
Re: OliThink 5.9.5 is very small
I am implementing now your code and there is something I don't understand:Dann Corbit wrote: ↑Sat May 22, 2021 10:35 am Of course, any changes I make you can use without asking permission. IOW, you have my implicit permission to use any tweaks I ever make to Olithink.
Using xboard I configured 1024 MB Hashsize, but xboard sends the following string to the engine:
Code: Select all
memory 1028
-
- Posts: 725
- Joined: Tue Dec 18, 2007 9:38 pm
- Location: Munich, Germany
- Full name: Dr. Oliver Brausch
Re: OliThink 5.9.5 is very small
That's right.Ras wrote: ↑Sat May 22, 2021 3:41 pm But memory=1 is missing in the feature announcent in line 1529 so that this will not be used. From http://hgm.nubati.net/CECP.html:
memory N
Specifies the engine can use at most N megabytes of memory. Only sent when the engine requested it through feature memory=1, and never during a game.
Also, stdlib.h should be included to use calloc() (in which case the integer variable random needs to be renamed), and the scanf() in line 1552 is using the wrong format string for the type size_t of the variable wanted.
The import of stdlib.h is a little annoying. Another extra line and I can't use "random" anymore, of course. I had to rename it.