| View previous topic :: View next topic |
| Author |
Message |
Michael Sherwin
Joined: 26 May 2006 Posts: 2215 Location: OH, USA
|
Post subject: Re: New simple and fast bitboard move generator Posted: Sun May 06, 2007 10:29 pm |
|
|
Would this be any better?
| Code: |
typedef struct {
u64 bitsN;
u64 bitsE;
u64 bitsS;
u64 bitsW;
u32 idxN[64];
u32 idxE[64];
u32 idxS[64];
u32 idxW[64];
} square;
u64 rookAttacks(u64 occ, square *sq) {
unsigned long ln = 0, le = 7, ls = 56, lw = 63;
_BitScanForward64(&ln, occ & sq->bitsN);
_BitScanForward64(&le, occ & sq->bitsE);
_BitScanReverse64(&ls, occ & sq->bitsS);
_BitScanReverse64(&lw, occ & sq->bitsW);
u32 idx = sq->idxN[ln] | sq->idxE[le] | sq->idxS[ls] | sq->idxW[lw];
return rookLookup[idx]; |
Edit: Or rather.
| Code: |
typedef struct {
u32 idxN;
u32 idxE;
u32 idxS;
u32 idxW;
} dir;
typedef struct {
u64 bitsN;
u64 bitsE;
u64 bitsS;
u64 bitsW;
dir idx[64];
} square;
u64 rookAttacks(u64 occ, square *sq) {
unsigned long ln = 0, le = 7, ls = 56, lw = 63;
_BitScanForward64(&ln, occ & sq->bitsN);
_BitScanForward64(&le, occ & sq->bitsE);
_BitScanReverse64(&ls, occ & sq->bitsS);
_BitScanReverse64(&lw, occ & sq->bitsW);
u32 idx = sq->idx[ln].idxN | sq->idx[le].idxE | sq->idx[ls].idxS | sq->idx[lw].idxW;
return rookLookup[idx]; |
_________________ Regards,
Mike |
|
| Back to top |
|
 |
|
| Subject |
Author |
Date/Time |
New simple and fast bitboard move generator |
Michael Sherwin |
Sat May 05, 2007 3:52 pm |
Re: New simple and fast bitboard move generator |
Gerd Isenberg |
Sat May 05, 2007 5:43 pm |
Re: New simple and fast bitboard move generator |
Gerd Isenberg |
Sun May 06, 2007 8:52 am |
Re: New simple and fast bitboard move generator |
Michael Sherwin |
Sun May 06, 2007 10:31 am |
Re: New simple and fast bitboard move generator |
Gerd Isenberg |
Sun May 06, 2007 11:16 am |
Re: New simple and fast bitboard move generator |
Michael Sherwin |
Sun May 06, 2007 1:21 pm |
Re: New simple and fast bitboard move generator |
Gerd Isenberg |
Sun May 06, 2007 1:52 pm |
Re: New simple and fast bitboard move generator |
Michael Sherwin |
Sun May 06, 2007 3:15 pm |
Re: New simple and fast bitboard move generator |
Michael Sherwin |
Sun May 06, 2007 10:29 pm |
Re: New simple and fast bitboard move generator |
Gerd Isenberg |
Mon May 07, 2007 8:40 am |
Re: New simple and fast bitboard move generator |
Michael Sherwin |
Mon May 07, 2007 11:06 am |
Re: New simple and fast bitboard move generator |
Gerd Isenberg |
Mon May 07, 2007 8:08 pm |
Re: New simple and fast bitboard move generator |
Gerd Isenberg |
Mon May 07, 2007 11:22 pm |
Re: New simple and fast bitboard move generator |
Michael Sherwin |
Tue May 08, 2007 3:18 am |
Re: New simple and fast bitboard move generator |
Gerd Isenberg |
Tue May 08, 2007 6:11 am |
Re: New simple and fast bitboard move generator |
Michael Sherwin |
Tue May 08, 2007 9:25 pm |
Re: New simple and fast bitboard move generator |
Michael Sherwin |
Tue May 08, 2007 10:55 pm |
Re: New simple and fast bitboard move generator |
Gerd Isenberg |
Wed May 09, 2007 3:18 am |
Re: New simple and fast bitboard move generator |
Tony |
Wed May 09, 2007 6:10 am |
Re: New simple and fast bitboard move generator |
Michael Sherwin |
Wed May 09, 2007 7:47 am |
Re: New simple and fast bitboard move generator |
Tony |
Wed May 09, 2007 8:24 am |
Re: New simple and fast bitboard move generator |
Gerd Isenberg |
Wed May 09, 2007 7:31 pm |
Re: New simple and fast bitboard move generator |
Michael Sherwin |
Wed May 09, 2007 11:30 pm |
Re: New simple and fast bitboard move generator |
Tony |
Mon May 07, 2007 6:46 am |
Re: New simple and fast bitboard move generator |
Gerd Isenberg |
Mon May 07, 2007 8:51 am |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|