I think you know already, there is no magic in computer chess. Except the new code is a simple counter only and/or changing from accessing HDD to work completely in memory, in general you cannot make the code run simnifically faster just by cutting few functions or replacing them by some faster ones. Actually I have tried already the method no-converting indexes but the speeding was not much (under 5%), and abandoned it since it affected badly to other functions.
For Xiangqi do you know any good way to avoid calling incheck function?
I was talking not about faster hardware but about cheaper solutions and the hope is to use some graphics cards instead of expensive multi-core CPUs.
I am sure even the most optimum code may beat me maximum 5% of speed but it may lose in other aspects thus optimisation is not my worries in long term.
I agreed with Guo, the article in his link is a solution. It is for perpetual checks only but you can easily do the same for perpetual chases.hgm wrote: ↑Fri Jan 04, 2019 8:53 am Note that for Xiangqi efficient creation of EGT is pretty much an unsolved problem. The rules for perpetual checking and chasing are basically incompatible with the idea of retrograde generation. So although it is possible to do some end-games (namely those where one side only has defenders) in the conventional way, the more interesting ones (such as KRPKR, KRCKR) would need a completely different treatment, and I am not sure whether it is actually public knowledge how exactly to do that, and how much the solution hurts speedwise compared to not having to deal with perpetuals.