My Project
Functions | Variables
flip_sse.c File Reference
#include <x86intrin.h>

Functions

static __v2di flipmask (__v2di outflank)
 
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:

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.

◆ flipmask()

static __v2di flipmask ( __v2di  outflank)
inlinestatic

Make inverted flip mask if opponent's disc are surrounded by player's.

0xffffffffffffffffULL if outflank is 0 0xffffffff00000000ULL if a 1 is in lower 32 bit 0x0000000000000000ULL if a 1 is in higher 32 bit

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_sse.c:312
static unsigned long long flip_D3(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:824
static unsigned long long flip_E2(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:639
static unsigned long long flip_E7(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1700
static unsigned long long flip_F3(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:882
static unsigned long long flip_D5(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1260
static unsigned long long flip_pass(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1992
static unsigned long long flip_G5(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1340
static unsigned long long flip_A2(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:530
static unsigned long long flip_B3(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:773
static unsigned long long flip_B4(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:988
static unsigned long long flip_E4(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1073
static unsigned long long flip_F7(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1725
static unsigned long long flip_C2(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:582
static unsigned long long flip_D8(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1869
static unsigned long long flip_G6(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1550
static unsigned long long flip_A6(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1388
static unsigned long long flip_A3(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:748
static unsigned long long flip_B1(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:338
static unsigned long long flip_H6(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1577
static unsigned long long flip_B6(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1416
static unsigned long long flip_E1(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:421
static unsigned long long flip_A4(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:960
static unsigned long long flip_B5(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1210
static unsigned long long flip_B7(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1627
static unsigned long long flip_D7(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1675
static unsigned long long flip_C5(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1234
static unsigned long long flip_D6(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1470
static unsigned long long flip_C1(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:364
static unsigned long long flip_H2(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:722
static unsigned long long flip_E3(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:853
static unsigned long long flip_E5(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1287
static unsigned long long flip_F2(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:668
static unsigned long long flip_C8(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1844
static unsigned long long flip_C3(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:798
static unsigned long long flip_G4(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1130
static unsigned long long flip_D2(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:610
static unsigned long long flip_H3(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:934
static unsigned long long flip_H4(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1158
static unsigned long long flip_F8(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1919
static unsigned long long flip_D1(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:392
static unsigned long long flip_H1(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:504
static unsigned long long flip_F1(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:450
static unsigned long long flip_A5(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1186
static unsigned long long flip_F6(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1524
static unsigned long long flip_B2(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:556
static unsigned long long flip_G1(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:478
static unsigned long long flip_F5(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1314
static unsigned long long flip_G3(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:908
static unsigned long long flip_G8(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1944
static unsigned long long flip_C4(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1016
static unsigned long long flip_H7(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1774
static unsigned long long flip_H8(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1968
static unsigned long long flip_H5(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1364
static unsigned long long flip_G2(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:696
static unsigned long long flip_A8(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1798
static unsigned long long flip_B8(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1821
static unsigned long long flip_C6(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1444
static unsigned long long flip_C7(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1650
static unsigned long long flip_D4(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1046
static unsigned long long flip_A7(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1604
static unsigned long long flip_F4(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1100
static unsigned long long flip_G7(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1750
static unsigned long long flip_E8(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1894
static unsigned long long flip_E6(const unsigned long long P, const unsigned long long O)
Definition: flip_sse.c:1497

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
}