Search found 2329 matches

by Michael Sherwin
Mon May 18, 2020 3:14 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: sort every moves or pickNext
Replies: 14
Views: 588

Re: sort every moves or pickNext

What I do in RomiChess is generate all the bitboards first without spinning them into a move list. That checks for legality since Romi uses pseudo legal move generation. Next I play the hash move and the check for validity is as simple as checking the bit in the bitboard for the piece. Romi does not...
by Michael Sherwin
Sat May 09, 2020 11:37 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Quick history move
Replies: 6
Views: 491

Re: Quick history move

Sounds inefficient because of all the moves in the hash that do not exist at any given time. I think that two history tables, one of long period and one of short period, might be a good idea.
by Michael Sherwin
Mon May 04, 2020 3:57 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: I think its vapor (hard)ware
Replies: 3
Views: 440

Re: I think its vapor (hard)ware

Looks like a computer generated image. It probably does not even exist. My first impression is it is some kind of scam. But, who knows.
by Michael Sherwin
Mon May 04, 2020 3:42 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Paradigm's first mile marker
Replies: 0
Views: 246

Paradigm's first mile marker

It is able to be compiled without error or warning. It is not a chess engine yet. All it can do right now is make a legal list of moves with material only scores (of course all scores are zero) in the original position. Since this is a new thread it works by generating one move at a time and then ca...
by Michael Sherwin
Wed Apr 29, 2020 2:39 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Crafty 25.6 search stability
Replies: 39
Views: 4317

Re: Crafty 25.6 search stability

Your questions at the top. Hash table is the problem. 1, 2 or more threads can store and read the same position. That's called a race condition. If you synchronize there it becomes a huge bottleneck. There are other things that need to be read and written by different threads at the same time. Pawn...
by Michael Sherwin
Sat Apr 25, 2020 8:50 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Simplifying code
Replies: 41
Views: 2966

Re: Simplifying code

Please tell, how does one achieve good move ordering without a list of moves to order? If you have a hash table hit with hash move, but insufficient depth draft, you don't need to generate moves because it will probably (90% - 95%) be a beta cut-off. I just verify the complete move legality of the ...
by Michael Sherwin
Sat Apr 25, 2020 8:43 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Simplifying code
Replies: 41
Views: 2966

Re: Simplifying code

I create a move priority queue on each node if it doesn't stand pat. On every node of the search tree? Do you have really huge standpat margins lower in the tree? How can queen sacrifices ever be seen? A priority queue can mean many things. I assume that you generate pawns_capture_queens first and ...
by Michael Sherwin
Sat Apr 25, 2020 7:32 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Simplifying code
Replies: 41
Views: 2966

Re: Simplifying code

I'm "out of the know" about this no stack idea. I understand copy and forget and making an array of modified boards (which is a stack, btw). But what I do not "see" is how effective move ordering is done. Move ordering is the absolute most important factor in the efficiency of an alpha/beta search. ...
by Michael Sherwin
Sat Apr 25, 2020 5:58 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Rewriting RomiChess from scratch for SMP
Replies: 17
Views: 1765

Re: Rewriting RomiChess from scratch for SMP

Two weeks to write one 'complicated' function is like a new record for me. Everything has been reimagined and reworked several times. I even renamed the new engine. And I'm very happy with the result. This is all the code so far. // Paradigm.cpp #define data 1 #define defines 1 #include <intrin.h> #...
by Michael Sherwin
Sat Apr 25, 2020 2:49 am
Forum: Computer Chess Club: General Topics
Topic: New engine releases 2020
Replies: 226
Views: 41933

Re: New engine releases 2020

C was created to be one thing: a portable assember. That is, a language that is easier to read and write than assembler and makes programs run on multiple architecture without rewriting, but being just as fast. It succeeded. I love C, but I love Rust better because of it's awesome static code analy...