Author: Robert Hyatt
Date: 08:40:37 06/18/02
Go up one level in this thread
On June 17, 2002 at 22:39:12, Adriano Bedeschi de Souza wrote:
>WOW, whats wrong with my rotates?
Don't do them like that. You use them too often. Incrementally update
the rotated bitmaps just like you do the normal occupied_squares bitmap,
in MakeMove().
That gets rid of this computational bottleneck.
>
>BitBoard rotate45Right(BitBoard *board) {
>
> int square;
> BitBoard rotated45Right = 0;
>
> for(square = 0; square < 64; square++) {
> if((*board) & mask[square]) {
> rotated45Right |= mask[rotated45Right_map[square]];
> }
> }
> return rotated45Right;
>}
>
>
>####### GPROF #######
>
>Flat profile:
>
>Each sample counts as 0.01 seconds.
> % cumulative self self total
> time seconds seconds calls Ts/call Ts/call name
> 26.85 7.65 7.65 rotate45Right
> 24.68 14.68 7.03 rotate90Right
> 23.52 21.38 6.70 rotate45Left
> 4.46 22.65 1.27 bishopMoves
> 4.42 23.91 1.26 mcount
> 3.65 24.95 1.04 numAttackers
> 2.63 25.70 0.75 rookMoves
> 1.47 26.12 0.42 search
> 1.44 26.53 0.41 LSB
> 1.44 26.94 0.41 probeHash
> 1.37 27.33 0.39 makeMove
> 1.12 27.65 0.32 evaluate
> 0.56 27.81 0.16 takeBack
> 0.42 27.93 0.12 isInCheck
> 0.39 28.04 0.11 count
> 0.21 28.10 0.06 rotate90Left
> 0.14 28.14 0.04 __umoddi3
> 0.14 28.18 0.04 generateWhiteKingCaptures
> 0.14 28.22 0.04 initializeGeneralBoards
> 0.14 28.26 0.04 popMoveBack
> 0.11 28.29 0.03 popMove
> 0.07 28.31 0.02 generateBlackPawnCaptures
> 0.07 28.33 0.02 generateBlackQueenCaptures
> 0.07 28.35 0.02
>generateWhiteKingNonCaptures
> 0.07 28.37 0.02 pow
> 0.07 28.39 0.02 pushMove
> 0.07 28.41 0.02 rotateBack45Left
> 0.04 28.42 0.01 cleanMoveStack
> 0.04 28.43 0.01
>generateBlackBishopCaptures
> 0.04 28.44 0.01
>generateBlackKnightCaptures
> 0.04 28.45 0.01
>generateWhiteKnightNonCaptures
> 0.04 28.46 0.01 generateWhitePawnCaptures
> 0.04 28.47 0.01 initializeZobrist
> 0.04 28.48 0.01 isEmptyMoveStack
> 0.04 28.49 0.01 pushMoveBack
>
> Call graph
>
>
>granularity: each sample hit covers 4 byte(s) for 0.04% of 27.23 seconds
>
>index % time self children called name
> <spontaneous>
>[1] 28.1 7.65 0.00 rotate45Right [1]
>-----------------------------------------------
> <spontaneous>
>[2] 25.8 7.03 0.00 rotate90Right [2]
>-----------------------------------------------
> <spontaneous>
>[3] 24.6 6.70 0.00 rotate45Left [3]
>-----------------------------------------------
> 5026006 bishopMoves [4]
>[4] 4.7 1.27 0.00 0+5026006 bishopMoves [4]
> 5026006 bishopMoves [4]
>-----------------------------------------------
> 4634920 numAttackers [5]
>[5] 3.8 1.04 0.00 0+4634920 numAttackers [5]
> 4634920 numAttackers [5]
>-----------------------------------------------
> 2512069 rookMoves [6]
>[6] 2.8 0.75 0.00 0+2512069 rookMoves [6]
> 2512069 rookMoves [6]
>-----------------------------------------------
> 738391 search [7]
>[7] 1.5 0.42 0.00 0+738391 search [7]
> 738391 search [7]
>-----------------------------------------------
> <spontaneous>
>[8] 1.5 0.41 0.00 LSB [8]
>-----------------------------------------------
> <spontaneous>
>[9] 1.5 0.41 0.00 probeHash [9]
>-----------------------------------------------
> 169821 makeMove [10]
>[10] 1.4 0.39 0.00 0+169821 makeMove [10]
> 169821 makeMove [10]
>-----------------------------------------------
> 1140200 evaluate [11]
>[11] 1.2 0.32 0.00 0+1140200 evaluate [11]
> 1140200 evaluate [11]
>-----------------------------------------------
> 84614 takeBack [12]
>[12] 0.6 0.16 0.00 0+84614 takeBack [12]
> 84614 takeBack [12]
>-----------------------------------------------
> 337054 isInCheck [13]
>[13] 0.4 0.12 0.00 0+337054 isInCheck [13]
> 337054 isInCheck [13]
>-----------------------------------------------
> <spontaneous>
>[14] 0.4 0.11 0.00 count [14]
>-----------------------------------------------
> <spontaneous>
>[15] 0.2 0.06 0.00 rotate90Left [15]
>-----------------------------------------------
> <spontaneous>
>[16] 0.1 0.04 0.00 __umoddi3 [16]
>-----------------------------------------------
> 6646 generateWhiteKingCaptures [17]
>[17] 0.1 0.04 0.00 0+6646 generateWhiteKingCaptures [17]
> 6646 generateWhiteKingCaptures [17]
>-----------------------------------------------
> 83152 initializeGeneralBoards [18]
>[18] 0.1 0.04 0.00 0+83152 initializeGeneralBoards [18]
> 83152 initializeGeneralBoards [18]
>-----------------------------------------------
> <spontaneous>
>[19] 0.1 0.04 0.00 popMoveBack [19]
>-----------------------------------------------
> <spontaneous>
>[20] 0.1 0.03 0.00 popMove [20]
>-----------------------------------------------
> 2158 generateBlackPawnCaptures [21]
>[21] 0.1 0.02 0.00 0+2158 generateBlackPawnCaptures [21]
> 2158 generateBlackPawnCaptures [21]
>-----------------------------------------------
> 12206 generateBlackQueenCaptures [22]
>[22] 0.1 0.02 0.00 0+12206 generateBlackQueenCaptures [22]
> 12206 generateBlackQueenCaptures [22]
>-----------------------------------------------
> 16354 generateWhiteKingNonCaptures
>[23]
>[23] 0.1 0.02 0.00 0+16354 generateWhiteKingNonCaptures [23]
> 16354 generateWhiteKingNonCaptures
>[23]
>-----------------------------------------------
> <spontaneous>
>[24] 0.1 0.02 0.00 pow [24]
>-----------------------------------------------
> <spontaneous>
>[25] 0.1 0.02 0.00 pushMove [25]
>-----------------------------------------------
> <spontaneous>
>[26] 0.1 0.02 0.00 rotateBack45Left [26]
>-----------------------------------------------
> <spontaneous>
>[27] 0.0 0.01 0.00 cleanMoveStack [27]
>-----------------------------------------------
> 16134 generateBlackBishopCaptures
>[28]
>[28] 0.0 0.01 0.00 0+16134 generateBlackBishopCaptures [28]
> 16134 generateBlackBishopCaptures
>[28]
>-----------------------------------------------
> 8087 generateBlackKnightCaptures
>[29]
>[29] 0.0 0.01 0.00 0+8087 generateBlackKnightCaptures [29]
> 8087 generateBlackKnightCaptures
>[29]
>-----------------------------------------------
> 70848 generateWhiteKnightNonCaptures
>[30]
>[30] 0.0 0.01 0.00 0+70848 generateWhiteKnightNonCaptures [30]
> 70848 generateWhiteKnightNonCaptures
>[30]
>-----------------------------------------------
> 2424 generateWhitePawnCaptures [31]
>[31] 0.0 0.01 0.00 0+2424 generateWhitePawnCaptures [31]
> 2424 generateWhitePawnCaptures [31]
>-----------------------------------------------
> 1537 initializeZobrist [32]
>[32] 0.0 0.01 0.00 0+1537 initializeZobrist [32]
> 1537 initializeZobrist [32]
>-----------------------------------------------
> <spontaneous>
>[33] 0.0 0.01 0.00 isEmptyMoveStack [33]
>-----------------------------------------------
> <spontaneous>
>[34] 0.0 0.01 0.00 pushMoveBack [34]
>-----------------------------------------------
> 6 checkResult [89]
>[89] 0.0 0.00 0.00 0+6 checkResult [89]
> 6 checkResult [89]
>-----------------------------------------------
> 4 generateBlackBishopMoves [105]
>[105] 0.0 0.00 0.00 0+4 generateBlackBishopMoves [105]
> 4 generateBlackBishopMoves [105]
>-----------------------------------------------
> 26924 generateBlackBishopNonCaptures
>[106]
>[106] 0.0 0.00 0.00 0+26924 generateBlackBishopNonCaptures
>[106]
> 26924 generateBlackBishopNonCaptures
>[106]
>-----------------------------------------------
> 23760 generateBlackCaptures [107]
>[107] 0.0 0.00 0.00 0+23760 generateBlackCaptures [107]
> 23760 generateBlackCaptures [107]
>-----------------------------------------------
> 3960 generateBlackKingCaptures [108]
>[108] 0.0 0.00 0.00 0+3960 generateBlackKingCaptures [108]
> 3960 generateBlackKingCaptures [108]
>-----------------------------------------------
> 1 generateBlackKingMoves [109]
>[109] 0.0 0.00 0.00 0+1 generateBlackKingMoves [109]
> 1 generateBlackKingMoves [109]
>-----------------------------------------------
> 6010 generateBlackKingNonCaptures
>[110]
>[110] 0.0 0.00 0.00 0+6010 generateBlackKingNonCaptures [110]
> 6010 generateBlackKingNonCaptures
>[110]
>-----------------------------------------------
> 10 generateBlackKnightMoves [111]
>[111] 0.0 0.00 0.00 0+10 generateBlackKnightMoves [111]
> 10 generateBlackKnightMoves [111]
>-----------------------------------------------
> 41529 generateBlackKnightNonCaptures
>[112]
>[112] 0.0 0.00 0.00 0+41529 generateBlackKnightNonCaptures
>[112]
> 41529 generateBlackKnightNonCaptures
>[112]
>-----------------------------------------------
> 7 generateBlackMoves [113]
>[113] 0.0 0.00 0.00 0+7 generateBlackMoves [113]
> 7 generateBlackMoves [113]
>-----------------------------------------------
> 23760 generateBlackNonCaptures [114]
>[114] 0.0 0.00 0.00 0+23760 generateBlackNonCaptures [114]
> 23760 generateBlackNonCaptures [114]
>-----------------------------------------------
> 112800 generateBlackPawnMoves [115]
>[115] 0.0 0.00 0.00 0+112800 generateBlackPawnMoves [115]
> 112800 generateBlackPawnMoves [115]
>-----------------------------------------------
> 3 generateBlackQueenMoves [116]
>[116] 0.0 0.00 0.00 0+3 generateBlackQueenMoves [116]
> 3 generateBlackQueenMoves [116]
>-----------------------------------------------
> 22224 generateBlackQueenNonCaptures
>[117]
>[117] 0.0 0.00 0.00 0+22224 generateBlackQueenNonCaptures [117]
> 22224 generateBlackQueenNonCaptures
>[117]
>-----------------------------------------------
> 15978 generateBlackRookCaptures [118]
>[118] 0.0 0.00 0.00 0+15978 generateBlackRookCaptures [118]
> 15978 generateBlackRookCaptures [118]
>-----------------------------------------------
> 4 generateBlackRookMoves [119]
>[119] 0.0 0.00 0.00 0+4 generateBlackRookMoves [119]
> 4 generateBlackRookMoves [119]
>-----------------------------------------------
> 23656 generateBlackRookNonCaptures
>[120]
>[120] 0.0 0.00 0.00 0+23656 generateBlackRookNonCaptures [120]
> 23656 generateBlackRookNonCaptures
>[120]
>-----------------------------------------------
> 27880 generateWhiteBishopCaptures
>[121]
>[121] 0.0 0.00 0.00 0+27880 generateWhiteBishopCaptures [121]
> 27880 generateWhiteBishopCaptures
>[121]
>-----------------------------------------------
> 57832 generateWhiteBishopNonCaptures
>[123]
>[123] 0.0 0.00 0.00 0+57832 generateWhiteBishopNonCaptures
>[123]
> 57832 generateWhiteBishopNonCaptures
>[123]
>-----------------------------------------------
> 39876 generateWhiteCaptures [124]
>[124] 0.0 0.00 0.00 0+39876 generateWhiteCaptures [124]
> 39876 generateWhiteCaptures [124]
>-----------------------------------------------
> 13522 generateWhiteKnightCaptures
>[126]
>[126] 0.0 0.00 0.00 0+13522 generateWhiteKnightCaptures [126]
> 13522 generateWhiteKnightCaptures
>[126]
>-----------------------------------------------
> 39876 generateWhiteNonCaptures [129]
>[129] 0.0 0.00 0.00 0+39876 generateWhiteNonCaptures [129]
> 39876 generateWhiteNonCaptures [129]
>-----------------------------------------------
> 184366 generateWhitePawnMoves [130]
>[130] 0.0 0.00 0.00 0+184366 generateWhitePawnMoves [130]
> 184366 generateWhitePawnMoves [130]
>-----------------------------------------------
> 25367 generateWhiteQueenCaptures
>[131]
>[131] 0.0 0.00 0.00 0+25367 generateWhiteQueenCaptures [131]
> 25367 generateWhiteQueenCaptures
>[131]
>-----------------------------------------------
> 80383 generateWhiteQueenNonCaptures
>[133]
>[133] 0.0 0.00 0.00 0+80383 generateWhiteQueenNonCaptures [133]
> 80383 generateWhiteQueenNonCaptures
>[133]
>-----------------------------------------------
> 26728 generateWhiteRookCaptures [134]
>[134] 0.0 0.00 0.00 0+26728 generateWhiteRookCaptures [134]
> 26728 generateWhiteRookCaptures [134]
>-----------------------------------------------
> 36464 generateWhiteRookNonCaptures
>[136]
>[136] 0.0 0.00 0.00 0+36464 generateWhiteRookNonCaptures [136]
> 36464 generateWhiteRookNonCaptures
>[136]
>-----------------------------------------------
> 12 main [145]
>[145] 0.0 0.00 0.00 0+12 main [145]
> 12 main [145]
>-----------------------------------------------
> 31 think [178]
>[178] 0.0 0.00 0.00 0+31 think [178]
> 31 think [178]
>-----------------------------------------------
>
>Index by function name
>
> [8] LSB [30] generateWhiteKnightNonCaptures [9] probeHash
> [16] __umoddi3 [31] generateWhitePawnCaptures [25] pushMove
> [4] bishopMoves [18] initializeGeneralBoards [34] pushMoveBack
> [27] cleanMoveStack [32] initializeZobrist [6] rookMoves
> [14] count [33] isEmptyMoveStack [3] rotate45Left
> [11] evaluate [13] isInCheck [1] rotate45Right
> [28] generateBlackBishopCaptures [10] makeMove [15] rotate90Left
> [29] generateBlackKnightCaptures (148) mcount [2] rotate90Right
> [21] generateBlackPawnCaptures [5] numAttackers [26] rotateBack45Left
> [22] generateBlackQueenCaptures [20] popMove [7] search
> [17] generateWhiteKingCaptures [19] popMoveBack [12] takeBack
> [23] generateWhiteKingNonCaptures [24] pow
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.