diff options
| author | eug-vs <eugene@eug-vs.xyz> | 2023-08-24 02:36:14 +0300 | 
|---|---|---|
| committer | eug-vs <eugene@eug-vs.xyz> | 2023-08-24 02:36:14 +0300 | 
| commit | 791ba3906d0ec41f328c20a9a1be8eabb12a84c6 (patch) | |
| tree | 84c7281df28c92dacbdae7f4aee26f38397d43ab /src/grossmeister/evaluation.rs | |
| parent | 85fbcdadec3853a92da6d434dbc94bb85bdfdcfe (diff) | |
| download | chessnost-791ba3906d0ec41f328c20a9a1be8eabb12a84c6.tar.gz | |
perf: use iterator in bitboard serialization
Diffstat (limited to 'src/grossmeister/evaluation.rs')
| -rw-r--r-- | src/grossmeister/evaluation.rs | 7 | 
1 files changed, 3 insertions, 4 deletions
| diff --git a/src/grossmeister/evaluation.rs b/src/grossmeister/evaluation.rs index 6669545..b78c49a 100644 --- a/src/grossmeister/evaluation.rs +++ b/src/grossmeister/evaluation.rs @@ -190,7 +190,7 @@ impl Grossmeister {                  }                  _ => panic!("Unreachable")              }; -            total + bitboard.serialize().iter().fold(0., |acc, &square| { +            total + bitboard.serialize().fold(0., |acc, square| {                  let pst_index = match color {                      Color::White => square.mirror(),                      Color::Black => square, @@ -280,8 +280,8 @@ impl Grossmeister {              Color::White => self.board.piece_sets[Piece::PawnBlack as usize],          }; -        let pawn_attacked_squares = opponent_pawns.serialize().iter().fold(0u64, |acc, square| { -            acc | self.board.attacks.pawn[color.flip() as usize][*square as usize] +        let pawn_attacked_squares = opponent_pawns.serialize().fold(0u64, |acc, square| { +            acc | self.board.attacks.pawn[color.flip() as usize][square as usize]          });          // Exclude squares controlled by enemy pawns from mobility @@ -325,7 +325,6 @@ impl Grossmeister {                          if *piece == king_home_position.to_bitboard() {                              for rook_square in player_pieces[Piece::Rook as usize]                                  .serialize() -                                .iter()                                  .filter(|rook_square| rook_square.rank() == king_home_position.rank())                                  {                                      match rook_square.file() { | 
