My Project
flip_carry_64.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 long long FLIPPED_2_H [130]
 
static const unsigned long long FLIPPED_3_H [131]
 
static const unsigned long long FLIPPED_4_H [133]
 
static const unsigned long long FLIPPED_5_H [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_5_V [137]
 
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, CONTIG_X tables are 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_carry_64.c:298
static unsigned long long flip_D3(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:776
static unsigned long long flip_E2(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:599
static unsigned long long flip_E7(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1652
static unsigned long long flip_F3(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:834
static unsigned long long flip_D5(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1212
static unsigned long long flip_pass(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1944
static unsigned long long flip_G5(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1292
static unsigned long long flip_A2(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:498
static unsigned long long flip_B3(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:725
static unsigned long long flip_B4(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:940
static unsigned long long flip_E4(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1025
static unsigned long long flip_F7(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1677
static unsigned long long flip_C2(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:546
static unsigned long long flip_D8(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1821
static unsigned long long flip_G6(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1502
static unsigned long long flip_A6(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1340
static unsigned long long flip_A3(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:700
static unsigned long long flip_B1(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:321
static unsigned long long flip_H6(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1529
static unsigned long long flip_B6(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1368
static unsigned long long flip_E1(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:397
static unsigned long long flip_A4(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:912
static unsigned long long flip_B5(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1162
static unsigned long long flip_B7(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1579
static unsigned long long flip_D7(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1627
static unsigned long long flip_C5(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1186
static unsigned long long flip_D6(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1422
static unsigned long long flip_C1(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:344
static unsigned long long flip_H2(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:676
static unsigned long long flip_E3(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:805
static unsigned long long flip_E5(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1239
static unsigned long long flip_F2(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:626
static unsigned long long flip_C8(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1796
static unsigned long long flip_C3(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:750
static unsigned long long flip_G4(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1082
static unsigned long long flip_D2(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:572
static unsigned long long flip_H3(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:886
static unsigned long long flip_H4(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1110
static unsigned long long flip_F8(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1871
static unsigned long long flip_D1(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:370
static unsigned long long flip_H1(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:474
static unsigned long long flip_F1(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:424
static unsigned long long flip_A5(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1138
static unsigned long long flip_F6(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1476
static unsigned long long flip_B2(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:522
static unsigned long long flip_G1(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:450
static unsigned long long flip_F5(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1266
static unsigned long long flip_G3(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:860
static unsigned long long flip_G8(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1896
static unsigned long long flip_C4(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:968
static unsigned long long flip_H7(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1726
static unsigned long long flip_H8(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1920
static unsigned long long flip_H5(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1316
static unsigned long long flip_G2(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:652
static unsigned long long flip_A8(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1750
static unsigned long long flip_B8(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1773
static unsigned long long flip_C6(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1396
static unsigned long long flip_C7(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1602
static unsigned long long flip_D4(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:998
static unsigned long long flip_A7(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1556
static unsigned long long flip_F4(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1052
static unsigned long long flip_G7(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1702
static unsigned long long flip_E8(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1846
static unsigned long long flip_E6(const unsigned long long P, const unsigned long long O)
Definition flip_carry_64.c:1449

Array of functions to compute flipped discs

◆ FLIPPED_2_H

const unsigned long long FLIPPED_2_H[130]
static
Initial value:
= {
0x0000000000000000ULL, 0x0202020202020202ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0808080808080808ULL, 0x0a0a0a0a0a0a0a0aULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x1818181818181818ULL, 0x1a1a1a1a1a1a1a1aULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x3838383838383838ULL, 0x3a3a3a3a3a3a3a3aULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x7878787878787878ULL, 0x7a7a7a7a7a7a7a7aULL
}

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_H

const unsigned long long FLIPPED_5_H[137]
static
Initial value:
= {
0x0000000000000000ULL, 0x1e1e1e1e1e1e1e1eULL, 0x1c1c1c1c1c1c1c1cULL, 0x0000000000000000ULL, 0x1818181818181818ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x1010101010101010ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x4040404040404040ULL, 0x5e5e5e5e5e5e5e5eULL, 0x5c5c5c5c5c5c5c5cULL, 0x0000000000000000ULL, 0x5858585858585858ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x5050505050505050ULL
}

◆ FLIPPED_5_V

const unsigned long long FLIPPED_5_V[137]
static
Initial value:
= {
0x0000000000000000ULL, 0x000000ffffffff00ULL, 0x000000ffffff0000ULL, 0x0000000000000000ULL, 0x000000ffff000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x000000ff00000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x00ff000000000000ULL, 0x00ff00ffffffff00ULL, 0x00ff00ffffff0000ULL, 0x0000000000000000ULL, 0x00ff00ffff000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
0x00ff00ff00000000ULL
}

◆ 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
}