HUGE ANNOUNCEMENT -- "LAS TORRES" NEW ENGINE THAT OBLITERATES STOCKFISH

Discussion of chess software programming and technical issues.

Moderator: Ras

amanjpro
Posts: 883
Joined: Sat Mar 13, 2021 1:47 am
Full name: Amanj Sherwany

Re: HUGE ANNOUNCEMENT -- "LAS TORRES" NEW ENGINE THAT OBLITERATES STOCKFISH

Post by amanjpro »

Guys admit it, klx is too good for us. He is very well seasoned

forum3/viewtopic.php?f=7&t=78070&start=130#p906332
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: HUGE ANNOUNCEMENT -- "LAS TORRES" NEW ENGINE THAT OBLITERATES STOCKFISH

Post by mvanthoor »

RubiChess wrote: Sun Oct 03, 2021 3:56 pm
OfekShochat wrote: Sun Oct 03, 2021 9:34 am Please release a linux executable too.
And don't forget Apple M1 executable for a friend of us.
I'd LOVE to have a version to run on my Amiga 500 too!
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
User avatar
Ras
Posts: 2703
Joined: Tue Aug 30, 2016 8:19 pm
Full name: Rasmus Althoff

Re: HUGE ANNOUNCEMENT -- "LAS TORRES" NEW ENGINE THAT OBLITERATES STOCKFISH

Post by Ras »

klx wrote: Sun Oct 03, 2021 4:26 amI am very proud to announce my new engine
Can it deliver checkmate so that the pieces form the face of a kitten? That's important, you know.
Rasmus Althoff
https://www.ct800.net
OfekShochat
Posts: 50
Joined: Thu Oct 15, 2020 10:19 am
Full name: Ofek Shochat

Re: HUGE ANNOUNCEMENT -- "LAS TORRES" NEW ENGINE THAT OBLITERATES STOCKFISH

Post by OfekShochat »

RubiChess wrote: Sun Oct 03, 2021 3:56 pm
OfekShochat wrote: Sun Oct 03, 2021 9:34 am Please release a linux executable too.
And don't forget Apple M1 executable for a friend of us.
Exactly!
dangi12012
Posts: 1062
Joined: Tue Apr 28, 2020 10:03 pm
Full name: Daniel Infuehr

Re: HUGE ANNOUNCEMENT -- "LAS TORRES" NEW ENGINE THAT OBLITERATES STOCKFISH

Post by dangi12012 »

Uri Blass wrote: Sun Oct 03, 2021 9:23 am
Mergi wrote: Sun Oct 03, 2021 8:56 am I think you should play some test matches against Gigantua as well. Especially now, that the source code for Gigantua has been released (2 days ago, as per the other thread). Stockfish is old news...
dangi12012 wrote: Thu Sep 30, 2021 10:40 pm You will see tomorrow in the sourcecode if all goes according to plan. Reddit post - Codeproject Article - Github release https://github.com/Gigantua/Gigantua
There is no claim that Gigantua is a chess engine that can play chess well.
Only that it is the fastest move generator.

If your post is to imply that a fast move generator is not important then I disagree.
I think that having the fastest move generator is also important even if it has no advantage to playing strength(and I do not claim it can give no advantage).

Playing strength is not everything in chess and different people may compete in different tasks.
There are some bogus claims on this board.
But everyone can verify that my movegenerator is faster than qperft and juddperft and many others... By just running it with your own fen string... on any Zen3/Intel machine
Sourcecode will come soon! https://github.com/Gigantua/Gigantua.
I can verify that CLANG eeks out another 5% - and finally puts it over 2Gigamoves/s for every run.
A movegenerator is much smaller than an engine and that someone like me with years of c++ practice and a few original ideas can beat ansi C is - no suprise there.

Having a template for Enpassant helps and the nastiest of nastiest enpassant pins can be solved in one op by my code. This gets called if the king can XRay an enemy slider along D1D2 diagonal. https://lichess.org/editor?fen=6q1%2F8% ... +w+-+-+0+1

Code: Select all

    //PinHVD1D2 |= Path from Enemy to excluding King + enemy. Has Seemap from king as input
    //Must have enemy slider AND own piece or - special: can clear enemy enpassant pawn
    template<class BoardStatus status>
    _ForceInline void RegisterPinD12(Square king, Square enemy, Board& brd, map& EPTarget)
    {
        const map Pinmask = Chess_Lookup::PinBetween[king * 64 + enemy];

        //Deep possible chess problem:
        //Enemy Enpassant Pawn gives check - Could be taken by EP Pawn - But is pinned and therefore not a valid EPTarget
        // https://lichess.org/editor?fen=6q1%2F8%2F8%2F3pP3%2F8%2F1K6%2F8%2F8+w+-+-+0+1
        //Can delete EP Status
        if constexpr (status.HasEPPawn) {
            if (Pinmask & EPTarget) EPTarget = 0;
        }

        if (Pinmask & OwnColor<status.WhiteMove>(brd)) {
            BishopPin |= Pinmask;
        }
    }
Also in bitboards you can move any piece by just one xor - Rooks ^= (from | to). What I am doing is writing a good codeplex article which is time consuming AF.
Worlds-fastest-Bitboard-Chess-Movegenerator
Daniel Inführ - Software Developer
Guenther
Posts: 4718
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: HUGE ANNOUNCEMENT -- "LAS TORRES" NEW ENGINE THAT OBLITERATES STOCKFISH

Post by Guenther »

RubiChess wrote: Sun Oct 03, 2021 3:56 pm
OfekShochat wrote: Sun Oct 03, 2021 9:34 am Please release a linux executable too.
And don't forget Apple M1 executable for a friend of us.
I wonder why that Emmanuel Torres troll can't be removed from here finally?
https://rwbc-chess.de

[Trolls n'existent pas...]
tcusr
Posts: 325
Joined: Tue Aug 31, 2021 10:32 pm
Full name: tcusr

Re: HUGE ANNOUNCEMENT -- "LAS TORRES" NEW ENGINE THAT OBLITERATES STOCKFISH

Post by tcusr »

dangi12012 wrote: Sun Oct 03, 2021 10:09 pm
Uri Blass wrote: Sun Oct 03, 2021 9:23 am
Mergi wrote: Sun Oct 03, 2021 8:56 am I think you should play some test matches against Gigantua as well. Especially now, that the source code for Gigantua has been released (2 days ago, as per the other thread). Stockfish is old news...
dangi12012 wrote: Thu Sep 30, 2021 10:40 pm You will see tomorrow in the sourcecode if all goes according to plan. Reddit post - Codeproject Article - Github release https://github.com/Gigantua/Gigantua
There is no claim that Gigantua is a chess engine that can play chess well.
Only that it is the fastest move generator.

If your post is to imply that a fast move generator is not important then I disagree.
I think that having the fastest move generator is also important even if it has no advantage to playing strength(and I do not claim it can give no advantage).

Playing strength is not everything in chess and different people may compete in different tasks.
There are some bogus claims on this board.
But everyone can verify that my movegenerator is faster than qperft and juddperft and many others... By just running it with your own fen string... on any Zen3/Intel machine
Sourcecode will come soon! https://github.com/Gigantua/Gigantua.
I can verify that CLANG eeks out another 5% - and finally puts it over 2Gigamoves/s for every run.
A movegenerator is much smaller than an engine and that someone like me with years of c++ practice and a few original ideas can beat ansi C is - no suprise there.

Having a template for Enpassant helps and the nastiest of nastiest enpassant pins can be solved in one op by my code. This gets called if the king can XRay an enemy slider along D1D2 diagonal. https://lichess.org/editor?fen=6q1%2F8% ... +w+-+-+0+1

Code: Select all

    //PinHVD1D2 |= Path from Enemy to excluding King + enemy. Has Seemap from king as input
    //Must have enemy slider AND own piece or - special: can clear enemy enpassant pawn
    template<class BoardStatus status>
    _ForceInline void RegisterPinD12(Square king, Square enemy, Board& brd, map& EPTarget)
    {
        const map Pinmask = Chess_Lookup::PinBetween[king * 64 + enemy];

        //Deep possible chess problem:
        //Enemy Enpassant Pawn gives check - Could be taken by EP Pawn - But is pinned and therefore not a valid EPTarget
        // https://lichess.org/editor?fen=6q1%2F8%2F8%2F3pP3%2F8%2F1K6%2F8%2F8+w+-+-+0+1
        //Can delete EP Status
        if constexpr (status.HasEPPawn) {
            if (Pinmask & EPTarget) EPTarget = 0;
        }

        if (Pinmask & OwnColor<status.WhiteMove>(brd)) {
            BishopPin |= Pinmask;
        }
    }
Also in bitboards you can move any piece by just one xor - Rooks ^= (from | to). What I am doing is writing a good codeplex article which is time consuming AF.
there's a syntax error, did you just write this...?

how is it possible to pass your board status as a template parameter? does that mean you fen parser is constexpr? if so, why is it possible to pass the fen as a command line argument? (it has to be hard coded to work)
until source code is out you're a troll just like klx
dangi12012
Posts: 1062
Joined: Tue Apr 28, 2020 10:03 pm
Full name: Daniel Infuehr

Re: HUGE ANNOUNCEMENT -- "LAS TORRES" NEW ENGINE THAT OBLITERATES STOCKFISH

Post by dangi12012 »

tcusr wrote: Sun Oct 03, 2021 10:30 pm how is it possible to pass your board status as a template parameter? does that mean you fen parser is constexpr? if so, why is it possible to pass the fen as a command line argument? (it has to be hard coded to work)
until source code is out you're a troll just like klx
There is no syntax error. There are macros and stuff missing in this snippet.
Of course you need to jump into one of the 64 template expanded functions. But the cost is one lookup into a table of 64 and that only once at the very beginning. And these can easily call themselfes by having constexpr members that toggle the appropriate boolean flags.

Many engines/movegens i have seen use !White as the template parameter for the deeper recursion. You can also do the same for pawn push (enpassant) and all 4 castling squares = 6 independent constexp bools. They dont overlap (all toggle the color - castling and enpassant dont see each other) - so the runtime cost - for example when your enemy didnt push his pawn is literally zero.
Worlds-fastest-Bitboard-Chess-Movegenerator
Daniel Inführ - Software Developer
tcusr
Posts: 325
Joined: Tue Aug 31, 2021 10:32 pm
Full name: tcusr

Re: HUGE ANNOUNCEMENT -- "LAS TORRES" NEW ENGINE THAT OBLITERATES STOCKFISH

Post by tcusr »

dangi12012 wrote: Sun Oct 03, 2021 10:51 pm
tcusr wrote: Sun Oct 03, 2021 10:30 pm how is it possible to pass your board status as a template parameter? does that mean you fen parser is constexpr? if so, why is it possible to pass the fen as a command line argument? (it has to be hard coded to work)
until source code is out you're a troll just like klx
There is no syntax error. There are macros and stuff missing in this snippet.
Of course you need to jump into one of the 64 template expanded functions. But the cost is one lookup into a table of 64 and that only once at the very beginning. And these can easily call themselfes by having constexpr members that toggle the appropriate boolean flags.

Many engines/movegens i have seen use !White as the template parameter for the deeper recursion. You can also do the same for pawn push (enpassant) and all 4 castling squares = 6 independent constexp bools. They dont overlap (all toggle the color - castling and enpassant dont see each other) - so the runtime cost - for example when your enemy didnt push his pawn is literally zero.

Code: Select all

template<class BoardStatus status>
what possible macro can you use here?

you still didn't answer the question, if this everything is used as a template parameter how is it possible to pass the fen string as a command line argument?
i don't understand your example, i too use a special function for castling (by passing the king square, rook square and color as template arguments) but i still need to do a runtime check of the castling rights
amanjpro
Posts: 883
Joined: Sat Mar 13, 2021 1:47 am
Full name: Amanj Sherwany

Re: HUGE ANNOUNCEMENT -- "LAS TORRES" NEW ENGINE THAT OBLITERATES STOCKFISH

Post by amanjpro »

Guys, let's all focus on the real invention here, Klx' seasoned emaNNUEl engine :P