Gracias por contestar. También soy admirador de Bouquet
¿Te importa que conteste en inglés? Así puede participar más gente. A parte me da un poco de corte, puesto que todo el foro está en inglés.
So the question is why only 64 bits popcnt. Simply because I don't spent time on understanding how to implement 32 bits or popcnt alternative in c++ and make it compatible with the program. For sure is in the list of things to be done.
If you see the source code, now is a big mess of catalan/english things, commented code, non optimized, not well writed algorithms...
Every feature I know about I try to implement on the program. Then I do some quick optimizations and if it doesn't lose a lot of ranking I keep in the code, just to be optimized later.
For example the static eval was a lot of static arrays of numbers selected only by inspiration, of about everything I can think about: passed pawns, knight attack, pawn structure, mobility, king safety, etc.
The process I used to optimize a lot all those 200+ parameters at once in only some hours may be is of interest of someone.
First I do a static evaluation of something like 750.000 positions with Stockfish and the positions and the evals (not detailed evals, only the final number) get written to a txt file.
Then I evaluate with my program every position and I do a standard deviation of the evaluations of the two programs. I discard the extreme evaluations of Stockfish (more than 5 or -5).
Then I modify the first of the 200 parameters by one, for example the knight value from 290 to 291. I do again the standard deviation, and if is greater I try passing the knight value from 290 to 289. And so on with every parameter. If a value doesn't moves up or down, I keep it for changing again for 3 rounds, and then I try again because many times it changes again when some other values had changed.
So with this system the program won more than 100 elo very quickly. This obviously is only plausible for underoptimized programs.
Once "stockfished", it doesn't plays like Stockfish. There are so many different things that it's not a true risk. And then I changed many other thinks and the code always was absolutely different.
The easy conclusion of my last 5 months programming this in some spare hours, is that there is so many information available, that today is near trivial doing a 2200+ engine, and with not much work a more stronger one.
I know now it will be a lot more difficult to advance. But it's nice work!



