From: Fabian Fichter Date: Sun, 18 Jul 2021 13:44:41 +0000 (+0200) Subject: Merge official-stockfish/master X-Git-Url: http://winboard.nl/cgi-bin?a=commitdiff_plain;h=47e78ad0476968a500bbed70b69899a5c20d98d9;p=fairystockfish.git Merge official-stockfish/master bench: 6215456 --- 47e78ad0476968a500bbed70b69899a5c20d98d9 diff --cc AUTHORS index 6a190df,7e63591..6077c24 --- a/AUTHORS +++ b/AUTHORS @@@ -1,21 -1,4 +1,21 @@@ +# Fairy-Stockfish authors + +# Main author +Fabian Fichter (ianfab) + +# Contributors in alphabetical order +alwey +Belzedar94 +Fulmene +gbtami +QueensGambit +tttak +yoav-rozin +ydirson + + + - # List of authors for Stockfish, as of May 17, 2021 + # List of authors for Stockfish, as of June 14, 2021 # Founders of the Stockfish project and fishtest infrastructure Tord Romstad (romstad) diff --cc src/nnue/nnue_feature_transformer.h index 3c6dbbc,ab05f88..338ca53 --- a/src/nnue/nnue_feature_transformer.h +++ b/src/nnue/nnue_feature_transformer.h @@@ -151,23 -197,20 +197,20 @@@ namespace Stockfish::Eval::NNUE // Read network parameters bool read_parameters(std::istream& stream) { - for (std::size_t i = 0; i < HalfDimensions; ++i) - biases[i] = read_little_endian(stream); - for (std::size_t i = 0; i < HalfDimensions * FeatureSet::get_dimensions(); ++i) - weights[i] = read_little_endian(stream); - for (std::size_t i = 0; i < PSQTBuckets * FeatureSet::get_dimensions(); ++i) - psqtWeights[i] = read_little_endian(stream); + read_little_endian(stream, biases , HalfDimensions ); - read_little_endian(stream, weights , HalfDimensions * InputDimensions); - read_little_endian(stream, psqtWeights, PSQTBuckets * InputDimensions); ++ read_little_endian(stream, weights , HalfDimensions * FeatureSet::get_dimensions()); ++ read_little_endian(stream, psqtWeights, PSQTBuckets * FeatureSet::get_dimensions()); + return !stream.fail(); } // Write network parameters bool write_parameters(std::ostream& stream) const { - for (std::size_t i = 0; i < HalfDimensions; ++i) - write_little_endian(stream, biases[i]); - for (std::size_t i = 0; i < HalfDimensions * FeatureSet::get_dimensions(); ++i) - write_little_endian(stream, weights[i]); - for (std::size_t i = 0; i < PSQTBuckets * FeatureSet::get_dimensions(); ++i) - write_little_endian(stream, psqtWeights[i]); + + write_little_endian(stream, biases , HalfDimensions ); - write_little_endian(stream, weights , HalfDimensions * InputDimensions); - write_little_endian(stream, psqtWeights, PSQTBuckets * InputDimensions); ++ write_little_endian(stream, weights , HalfDimensions * FeatureSet::get_dimensions()); ++ write_little_endian(stream, psqtWeights, PSQTBuckets * FeatureSet::get_dimensions()); + return !stream.fail(); } diff --cc src/search.cpp index 2dba207,b8756d3..f81df24 --- a/src/search.cpp +++ b/src/search.cpp @@@ -1246,16 -1112,13 +1255,17 @@@ moves_loop: // When in check, search st && abs(ss->staticEval) > Value(100)) extension = 1; + // Losing chess capture extension + else if ( pos.must_capture() + && pos.capture(move) + && (ss->inCheck || MoveList(pos).size() == 1)) + extension = 1; + // Add extension to new depth newDepth += extension; + ss->doubleExtensions = (ss-1)->doubleExtensions + (extension == 2); // Speculative prefetch as early as possible - prefetch(TT.first_entry(pos.key_after(move))); - // Update the current move (this must be done after singular extension search) ss->currentMove = move; ss->continuationHistory = &thisThread->continuationHistory[ss->inCheck]