]> git.sesse.net Git - stockfish/commitdiff
Simplify lookup_count and clean up pieces().
authormstembera <MissingEmail@email>
Mon, 3 Jul 2023 02:48:18 +0000 (19:48 -0700)
committerJoost VandeVondele <Joost.VandeVondele@gmail.com>
Mon, 3 Jul 2023 16:20:10 +0000 (18:20 +0200)
https://github.com/official-stockfish/Stockfish/pull/4656

No functional change

src/nnue/layers/affine_transform_sparse_input.h
src/position.h

index e0c3a8a06bb5478c2f4e48d21b651a15699591a0..18c166cd9d7897e8c221a8eafb61ce68c1c52ad4 100644 (file)
@@ -24,6 +24,7 @@
 #include <iostream>
 #include <algorithm>
 #include <array>
+#include <bitset>
 #include <type_traits>
 #include "../nnue_common.h"
 #include "affine_transform.h"
@@ -77,16 +78,7 @@ namespace Stockfish::Eval::NNUE::Layers {
   alignas(CacheLineSize) static inline const std::array<unsigned, 256> lookup_count = [](){
     std::array<unsigned, 256> v;
     for (int i = 0; i < 256; ++i)
-    {
-      int j = i;
-      int k = 0;
-      while(j)
-      {
-        j &= j - 1;
-        ++k;
-      }
-      v[i] = k;
-    }
+      v[i] = unsigned(std::bitset<8>(i).count());
     return v;
   }();
 
index 2e6014dbe6ebb3170d8275c6da11083d4086c0db..7d4b37719122ed18eec0b94c833e9e45f9e1b37d 100644 (file)
@@ -91,7 +91,7 @@ public:
   std::string fen() const;
 
   // Position representation
-  Bitboard pieces(PieceType pt) const;
+  Bitboard pieces(PieceType pt = ALL_PIECES) const;
   template<typename ...PieceTypes> Bitboard pieces(PieceType pt, PieceTypes... pts) const;
   Bitboard pieces(Color c) const;
   template<typename ...PieceTypes> Bitboard pieces(Color c, PieceTypes... pts) const;
@@ -224,7 +224,7 @@ inline Piece Position::moved_piece(Move m) const {
   return piece_on(from_sq(m));
 }
 
-inline Bitboard Position::pieces(PieceType pt = ALL_PIECES) const {
+inline Bitboard Position::pieces(PieceType pt) const {
   return byTypeBB[pt];
 }