My Project
flip_bitscan.c File Reference

Functions

static unsigned long long flip_A1 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_B1 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_C1 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_D1 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_E1 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_F1 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_G1 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_H1 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_A2 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_B2 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_C2 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_D2 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_E2 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_F2 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_G2 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_H2 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_A3 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_B3 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_C3 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_D3 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_E3 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_F3 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_G3 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_H3 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_A4 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_B4 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_C4 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_D4 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_E4 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_F4 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_G4 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_H4 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_A5 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_B5 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_C5 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_D5 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_E5 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_F5 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_G5 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_H5 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_A6 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_B6 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_C6 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_D6 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_E6 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_F6 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_G6 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_H6 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_A7 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_B7 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_C7 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_D7 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_E7 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_F7 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_G7 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_H7 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_A8 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_B8 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_C8 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_D8 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_E8 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_F8 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_G8 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_H8 (const unsigned long long P, const unsigned long long O)
 
static unsigned long long flip_pass (const unsigned long long P, const unsigned long long O)
 

Variables

static const unsigned char OUTFLANK_2 [64]
 
static const unsigned char OUTFLANK_3 [64]
 
static const unsigned char OUTFLANK_4 [64]
 
static const unsigned char OUTFLANK_5 [64]
 
static const unsigned char OUTFLANK_7 [64]
 
static const unsigned char CONTIG_UP [64]
 
static const unsigned char CONTIG_UPLEFT [64]
 
static const unsigned char CONTIG_UPRIGHT [64]
 
static const unsigned char FLIPPED_2 [130]
 
static const unsigned long long FLIPPED_3_H [131]
 
static const unsigned long long FLIPPED_4_H [133]
 
static const unsigned char FLIPPED_5 [137]
 
static const unsigned long long FLIPPED_3_V [131]
 
static const unsigned long long FLIPPED_4_V [133]
 
static const unsigned long long FLIPPED_3_U [131]
 
unsigned long long(* flip [])(const unsigned long long, const unsigned long long)
 

Detailed Description

This module deals with flipping discs.

A function is provided for each square of the board. These functions are gathered into an array of functions, so that a fast access to each function is allowed. The generic form of the function take as input the player and the opponent bitboards and return the flipped squares into a bitboard.

Given the following notation:

  • x = square where we play,
  • P = player's disc pattern,
  • O = opponent's disc pattern, the basic principle is to read into an array the result of a move. Doing this is easier for a single line ; so we can use arrays of the form:
  • ARRAY[x][8-bits disc pattern]. The problem is thus to convert any line of a 64-bits disc pattern into an 8-bits disc pattern. A fast way to do this is to select the right line, with a bit-mask, to gather the masked-bits into a continuous set by a simple multiplication and to right-shift the result to scale it into a number between 0 and 255. Once we get our 8-bits disc patterns,a first array (OUTFLANK) is used to get the player's discs that surround the opponent discs:
  • outflank = OUTFLANK[x][O] & P (Only inner 6-bits of the P are in interest here.) The result is then used as an index to access a second array giving the flipped discs according to the surrounding player's discs:
  • flipped = FLIPPED[x][outflank]. (Flipped discs fall into inner 6-bits.) Finally, a precomputed array transform the inner 6-bits disc pattern back into a 64-bits disc pattern, and the flipped squares for each line are gathered and returned to generate moves.

If the OUTFLANK search is in LSB to MSB direction, carry propagation can be used to determine contiguous opponent discs. If the OUTFLANK search is in MSB to LSB direction, GCC's __builtin_clz(ll) is used to determine coutiguous opponent discs.

Date
1998 - 2017
Author
Richard Delorme
Toshihiko Okuhara
Version
4.4

Function Documentation

◆ flip_A1()

static unsigned long long flip_A1 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square A1.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_A2()

static unsigned long long flip_A2 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square A2.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_A3()

static unsigned long long flip_A3 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square A3.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_A4()

static unsigned long long flip_A4 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square A4.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_A5()

static unsigned long long flip_A5 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square A5.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_A6()

static unsigned long long flip_A6 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square A6.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_A7()

static unsigned long long flip_A7 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square A7.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_A8()

static unsigned long long flip_A8 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square A8.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_B1()

static unsigned long long flip_B1 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square B1.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_B2()

static unsigned long long flip_B2 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square B2.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_B3()

static unsigned long long flip_B3 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square B3.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_B4()

static unsigned long long flip_B4 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square B4.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_B5()

static unsigned long long flip_B5 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square B5.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_B6()

static unsigned long long flip_B6 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square B6.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_B7()

static unsigned long long flip_B7 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square B7.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_B8()

static unsigned long long flip_B8 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square B8.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_C1()

static unsigned long long flip_C1 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square C1.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_C2()

static unsigned long long flip_C2 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square C2.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_C3()

static unsigned long long flip_C3 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square C3.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_C4()

static unsigned long long flip_C4 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square C4.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_C5()

static unsigned long long flip_C5 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square C5.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_C6()

static unsigned long long flip_C6 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square C6.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_C7()

static unsigned long long flip_C7 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square C7.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_C8()

static unsigned long long flip_C8 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square C8.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_D1()

static unsigned long long flip_D1 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square D1.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_D2()

static unsigned long long flip_D2 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square D2.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_D3()

static unsigned long long flip_D3 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square D3.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_D4()

static unsigned long long flip_D4 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square D4.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_D5()

static unsigned long long flip_D5 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square D5.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_D6()

static unsigned long long flip_D6 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square D6.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_D7()

static unsigned long long flip_D7 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square D7.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_D8()

static unsigned long long flip_D8 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square D8.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_E1()

static unsigned long long flip_E1 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square E1.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_E2()

static unsigned long long flip_E2 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square E2.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_E3()

static unsigned long long flip_E3 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square E3.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_E4()

static unsigned long long flip_E4 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square E3.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_E5()

static unsigned long long flip_E5 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square E5.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_E6()

static unsigned long long flip_E6 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square E6.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_E7()

static unsigned long long flip_E7 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square E7.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_E8()

static unsigned long long flip_E8 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square E8.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_F1()

static unsigned long long flip_F1 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square F1.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_F2()

static unsigned long long flip_F2 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square F2.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_F3()

static unsigned long long flip_F3 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square F3.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_F4()

static unsigned long long flip_F4 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square F4.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_F5()

static unsigned long long flip_F5 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square F5.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_F6()

static unsigned long long flip_F6 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square F6.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_F7()

static unsigned long long flip_F7 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square F7.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_F8()

static unsigned long long flip_F8 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square F8.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_G1()

static unsigned long long flip_G1 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square G1.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_G2()

static unsigned long long flip_G2 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square G2.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_G3()

static unsigned long long flip_G3 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square G3.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_G4()

static unsigned long long flip_G4 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square G4.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_G5()

static unsigned long long flip_G5 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square G5.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_G6()

static unsigned long long flip_G6 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square G6.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_G7()

static unsigned long long flip_G7 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square G7.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_G8()

static unsigned long long flip_G8 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square G8.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_H1()

static unsigned long long flip_H1 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square H1.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_H2()

static unsigned long long flip_H2 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square H2.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_H3()

static unsigned long long flip_H3 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square H3.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_H4()

static unsigned long long flip_H4 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square H4.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_H5()

static unsigned long long flip_H5 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square H5.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_H6()

static unsigned long long flip_H6 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square H6.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_H7()

static unsigned long long flip_H7 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square H7.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_H8()

static unsigned long long flip_H8 ( const unsigned long long P,
const unsigned long long O )
static

Compute flipped discs when playing on square H8.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

◆ flip_pass()

static unsigned long long flip_pass ( const unsigned long long P,
const unsigned long long O )
static

Compute (zero-) flipped discs when plassing.

Parameters
Pplayer's disc pattern.
Oopponent's disc pattern.
Returns
flipped disc pattern.

Variable Documentation

◆ CONTIG_UP

const unsigned char CONTIG_UP[64]
static
Initial value:
= {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
16, 16, 16, 16, 16, 16, 16, 16, 24, 24, 24, 24, 32, 32, 40, 48
}

◆ CONTIG_UPLEFT

const unsigned char CONTIG_UPLEFT[64]
static
Initial value:
= {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
18, 18, 18, 18, 18, 18, 18, 18, 27, 27, 27, 27, 36, 36, 45, 54
}

◆ CONTIG_UPRIGHT

const unsigned char CONTIG_UPRIGHT[64]
static
Initial value:
= {
0, 7, 0, 14, 0, 7, 0, 21, 0, 7, 0, 14, 0, 7, 0, 28,
0, 7, 0, 14, 0, 7, 0, 21, 0, 7, 0, 14, 0, 7, 0, 35,
0, 7, 0, 14, 0, 7, 0, 21, 0, 7, 0, 14, 0, 7, 0, 28,
0, 7, 0, 14, 0, 7, 0, 21, 0, 7, 0, 14, 0, 7, 0, 42
}

◆ flip

unsigned long long(* flip[])(const unsigned long long, const unsigned long long) ( const unsigned long long ,
const unsigned long long  )
Initial value:
= {
}
static unsigned long long flip_A1(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:261
static unsigned long long flip_D3(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:739
static unsigned long long flip_E2(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:562
static unsigned long long flip_E7(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1608
static unsigned long long flip_F3(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:797
static unsigned long long flip_D5(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1175
static unsigned long long flip_pass(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1903
static unsigned long long flip_G5(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1255
static unsigned long long flip_A2(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:461
static unsigned long long flip_B3(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:688
static unsigned long long flip_B4(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:903
static unsigned long long flip_E4(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:988
static unsigned long long flip_F7(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1633
static unsigned long long flip_C2(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:509
static unsigned long long flip_D8(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1779
static unsigned long long flip_G6(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1459
static unsigned long long flip_A6(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1303
static unsigned long long flip_A3(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:663
static unsigned long long flip_B1(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:284
static unsigned long long flip_H6(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1485
static unsigned long long flip_B6(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1328
static unsigned long long flip_E1(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:360
static unsigned long long flip_A4(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:875
static unsigned long long flip_B5(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1125
static unsigned long long flip_B7(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1534
static unsigned long long flip_D7(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1583
static unsigned long long flip_C5(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1149
static unsigned long long flip_D6(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1379
static unsigned long long flip_C1(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:307
static unsigned long long flip_H2(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:639
static unsigned long long flip_E3(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:768
static unsigned long long flip_E5(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1202
static unsigned long long flip_F2(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:589
static unsigned long long flip_C8(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1753
static unsigned long long flip_C3(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:713
static unsigned long long flip_G4(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1045
static unsigned long long flip_D2(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:535
static unsigned long long flip_H3(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:849
static unsigned long long flip_H4(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1073
static unsigned long long flip_F8(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1829
static unsigned long long flip_D1(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:333
static unsigned long long flip_H1(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:437
static unsigned long long flip_F1(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:387
static unsigned long long flip_A5(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1101
static unsigned long long flip_F6(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1433
static unsigned long long flip_B2(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:485
static unsigned long long flip_G1(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:413
static unsigned long long flip_F5(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1229
static unsigned long long flip_G3(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:823
static unsigned long long flip_G8(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1855
static unsigned long long flip_C4(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:931
static unsigned long long flip_H7(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1683
static unsigned long long flip_H8(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1879
static unsigned long long flip_H5(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1279
static unsigned long long flip_G2(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:615
static unsigned long long flip_A8(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1707
static unsigned long long flip_B8(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1730
static unsigned long long flip_C6(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1353
static unsigned long long flip_C7(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1557
static unsigned long long flip_D4(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:961
static unsigned long long flip_A7(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1511
static unsigned long long flip_F4(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1015
static unsigned long long flip_G7(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1659
static unsigned long long flip_E8(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1804
static unsigned long long flip_E6(const unsigned long long P, const unsigned long long O)
Definition flip_bitscan.c:1406

Array of functions to compute flipped discs

◆ FLIPPED_2

const unsigned char FLIPPED_2[130]
static
Initial value:
= {
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x04, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0c, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1c, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3c, 0x3d
}

flip array (indexed with outflank, returns inner 6 bits)

◆ FLIPPED_3_H

const unsigned long long FLIPPED_3_H[131]
static
Initial value:
= {
0x0000000000000000ULL, 0x0606060606060606ULL, 0x0404040404040404ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x1010101010101010ULL, 0x1616161616161616ULL, 0x1414141414141414ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x3030303030303030ULL, 0x3636363636363636ULL, 0x3434343434343434ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x7070707070707070ULL, 0x7676767676767676ULL, 0x7474747474747474ULL
}

◆ FLIPPED_3_U

const unsigned long long FLIPPED_3_U[131]
static
Initial value:
= {
0x0000000000000000ULL, 0x00ffff0000000000ULL, 0x0000ff0000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x00000000ff000000ULL, 0x00ffff00ff000000ULL, 0x0000ff00ff000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x00000000ffff0000ULL, 0x00ffff00ffff0000ULL, 0x0000ff00ffff0000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x00000000ffffff00ULL, 0x00ffff00ffffff00ULL, 0x0000ff00ffffff00ULL
}

◆ FLIPPED_3_V

const unsigned long long FLIPPED_3_V[131]
static
Initial value:
= {
0x0000000000000000ULL, 0x0000000000ffff00ULL, 0x0000000000ff0000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x000000ff00000000ULL, 0x000000ff00ffff00ULL, 0x000000ff00ff0000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000ffff00000000ULL, 0x0000ffff00ffff00ULL, 0x0000ffff00ff0000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x00ffffff00000000ULL, 0x00ffffff00ffff00ULL, 0x00ffffff00ff0000ULL
}

◆ FLIPPED_4_H

const unsigned long long FLIPPED_4_H[133]
static
Initial value:
= {
0x0000000000000000ULL, 0x0e0e0e0e0e0e0e0eULL, 0x0c0c0c0c0c0c0c0cULL, 0x0000000000000000ULL, 0x0808080808080808ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x2020202020202020ULL, 0x2e2e2e2e2e2e2e2eULL, 0x2c2c2c2c2c2c2c2cULL, 0x0000000000000000ULL, 0x2828282828282828ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x6060606060606060ULL, 0x6e6e6e6e6e6e6e6eULL, 0x6c6c6c6c6c6c6c6cULL, 0x0000000000000000ULL, 0x6868686868686868ULL
}

◆ FLIPPED_4_V

const unsigned long long FLIPPED_4_V[133]
static
Initial value:
= {
0x0000000000000000ULL, 0x00000000ffffff00ULL, 0x00000000ffff0000ULL, 0x0000000000000000ULL, 0x00000000ff000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000ff0000000000ULL, 0x0000ff00ffffff00ULL, 0x0000ff00ffff0000ULL, 0x0000000000000000ULL, 0x0000ff00ff000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x00ffff0000000000ULL, 0x00ffff00ffffff00ULL, 0x00ffff00ffff0000ULL, 0x0000000000000000ULL, 0x00ffff00ff000000ULL
}

◆ FLIPPED_5

const unsigned char FLIPPED_5[137]
static
Initial value:
= {
0x00, 0x0f, 0x0e, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0x2f, 0x2e, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x28
}

◆ OUTFLANK_2

const unsigned char OUTFLANK_2[64]
static
Initial value:
= {
0x00, 0x01, 0x00, 0x00, 0x10, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x20, 0x21, 0x00, 0x00,
0x00, 0x01, 0x00, 0x00, 0x10, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x41, 0x00, 0x00,
0x00, 0x01, 0x00, 0x00, 0x10, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x20, 0x21, 0x00, 0x00,
0x00, 0x01, 0x00, 0x00, 0x10, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x80, 0x81, 0x00, 0x00
}

outflank array (indexed with inner 6 bits)

◆ OUTFLANK_3

const unsigned char OUTFLANK_3[64]
static
Initial value:
= {
0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x22, 0x21, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x42, 0x41, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x22, 0x21, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x82, 0x81, 0x00, 0x00, 0x00, 0x00
}

◆ OUTFLANK_4

const unsigned char OUTFLANK_4[64]
static
Initial value:
= {
0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x40, 0x40, 0x40, 0x40, 0x44, 0x44, 0x42, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x80, 0x80, 0x80, 0x84, 0x84, 0x82, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}

◆ OUTFLANK_5

const unsigned char OUTFLANK_5[64]
static
Initial value:
= {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x88, 0x88, 0x88, 0x88, 0x84, 0x84, 0x82, 0x81,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}

◆ OUTFLANK_7

const unsigned char OUTFLANK_7[64]
static
Initial value:
= {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01
}