- #if !defined(DATA_INCLUDED) 
- #  define DATA_INCLUDED 
- extern int scale; 
- extern char version[8]; 
- extern int presult; 
- extern PLAYING_MODE mode; 
- extern int batch_mode; 
- extern int swindle_mode; 
- extern int call_flag; 
- extern int crafty_rating; 
- extern int opponent_rating; 
- extern int time_used; 
- extern int time_used_opponent; 
- extern uint64_t total_moves; 
- extern int allow_cores; 
- extern int allow_memory; 
- extern int initialized; 
- extern int early_exit; 
- extern int new_game; 
- extern char *AK_list[128]; 
- extern char *GM_list[128]; 
- extern char *IM_list[128]; 
- extern char *B_list[128]; 
- extern char *SP_list[128]; 
- extern char *SP_opening_filename[128]; 
- extern char *SP_personality_filename[128]; 
- extern FILE *input_stream; 
- extern FILE *book_file; 
- extern FILE *books_file; 
- extern FILE *normal_bs_file; 
- extern FILE *computer_bs_file; 
- extern FILE *history_file; 
- extern FILE *log_file; 
- extern int log_id; 
- extern int output_format; 
- #  if !defined(NOEGTB) 
- extern int EGTBlimit; 
- extern int EGTB_use; 
- extern int EGTB_draw; 
- extern int EGTB_depth; 
- extern void *EGTB_cache; 
- extern size_t EGTB_cache_size; 
- extern int EGTB_setup; 
- #  endif 
- extern int last_mate_score; 
- extern int last_opponent_move; 
- extern int check_depth; 
- extern int null_depth; 
- extern int null_divisor; 
- extern int LMR_rdepth; 
- extern int LMR_min; 
- extern int LMR_max; 
- extern double LMR_db; 
- extern double LMR_mb; 
- extern double LMR_s; 
- extern uint8_t LMR[32][64]; 
- extern int rep_index; 
- extern int pgn_suggested_percent; 
- extern char pgn_event[128]; 
- extern char pgn_date[128]; 
- extern char pgn_round[128]; 
- extern char pgn_site[128]; 
- extern char pgn_white[128]; 
- extern char pgn_white_elo[128]; 
- extern char pgn_black[128]; 
- extern char pgn_black_elo[128]; 
- extern char pgn_result[128]; 
- extern char log_filename[256]; 
- extern char history_filename[256]; 
- extern int number_of_solutions; 
- extern int solutions[10]; 
- extern int solution_type; 
- extern int abs_draw_score; 
- extern int accept_draws; 
- extern int offer_draws; 
- extern int dynamic_draw_score; 
- extern int adaptive_hash; 
- extern size_t adaptive_hash_min; 
- extern size_t adaptive_hash_max; 
- extern size_t adaptive_hashp_min; 
- extern size_t adaptive_hashp_max; 
- extern int over; 
- extern int xboard; 
- extern int xboard_done; 
- extern int pong; 
- extern char book_path[128]; 
- extern char log_path[128]; 
- extern char tb_path[128]; 
- extern char rc_path[128]; 
- extern char cmd_buffer[4096]; 
- extern char *args[512]; 
- extern char buffer[4096]; 
- extern int line_length; 
- extern unsigned char convert_buff[8]; 
- extern int nargs; 
- extern int kibitz; 
- extern int game_wtm; 
- extern int last_search_value; 
- extern int pruning_margin[10]; 
- extern int pruning_depth; 
- extern int movecnt_pruning[4]; 
- extern int movecnt_depth; 
- extern int failhi_delta, faillo_delta; 
- extern int ponder_value; 
- extern int move_actually_played; 
- extern int analyze_mode; 
- extern int annotate_mode; 
- extern int input_status;        /* 0=no input; 
-                                    1=predicted move read; 
-                                    2=unpredicted move read; 
-                                    3=something read, not executed. */ 
- extern int resign; 
- extern int resign_counter; 
- extern int resign_count; 
- extern int draw_counter; 
- extern int draw_count; 
- extern int draw_offer_pending; 
- extern int draw_offered; 
- extern char audible_alarm; 
- extern char speech; 
- extern char ponder_text[512]; 
- extern char book_hint[512]; 
- extern int post; 
- extern int search_depth; 
- extern uint64_t search_nodes; 
- extern uint64_t temp_search_nodes; 
- extern int search_move; 
- extern int ponder; 
- extern int ponder_move; 
- extern int force; 
- extern unsigned ponder_moves[256]; 
- extern int num_ponder_moves; 
- extern char initial_position[80]; 
- extern int predicted; 
- extern int trace_level; 
- extern int book_move; 
- extern int book_accept_mask; 
- extern int book_reject_mask; 
- extern int book_random; 
- extern float book_weight_freq; 
- extern float book_weight_eval; 
- extern float book_weight_learn; 
- extern int book_search_trigger; 
- extern int book_selection_width; 
- extern int show_book; 
- extern int learn; 
- extern int learning; 
- extern int learn_value; 
- extern int abort_search; 
- extern int iteration; 
- extern int root_wtm; 
- extern int last_root_value; 
- extern ROOT_MOVE root_moves[256]; 
- extern int n_root_moves; 
- extern int difficulty; 
- extern int time_limit; 
- extern int absolute_time_limit; 
- extern int search_time_limit; 
- extern int burp; 
- extern int quit; 
- extern unsigned opponent_start_time, opponent_end_time; 
- extern unsigned program_start_time, program_end_time; 
- extern unsigned start_time, end_time; 
- extern TREE *block[MAX_BLOCKS + 1]; 
- extern THREAD thread[CPUS]; 
- #  if (CPUS > 1) 
- extern lock_t lock_smp, lock_io; 
- #    if defined(UNIX) 
- extern pthread_attr_t attributes; 
- #    endif 
- #  endif 
- extern unsigned int smp_max_threads; 
- extern unsigned int smp_split_group; 
- extern unsigned int smp_split_at_root; 
- extern unsigned int smp_min_split_depth; 
- extern unsigned int smp_gratuitous_depth; 
- extern unsigned int smp_gratuitous_limit; 
- extern int smp_affinity; 
- extern int smp_numa; 
- extern int autotune_params; 
- extern struct autotune tune[16]; 
- extern unsigned smp_split_nodes; 
- extern unsigned parallel_splits; 
- extern unsigned parallel_splits_wasted; 
- extern unsigned parallel_aborts; 
- extern unsigned parallel_joins; 
- extern unsigned busy_percent; 
- extern uint64_t game_max_blocks; 
- extern volatile int smp_split; 
- extern volatile int smp_threads; 
- extern volatile int initialized_threads; 
- extern int crafty_is_white; 
- extern unsigned nodes_between_time_checks; 
- extern unsigned nodes_per_second; 
- extern int next_time_check; 
- extern int transposition_age; 
- extern int thinking; 
- extern int pondering; 
- extern int puzzling; 
- extern int booking; 
- extern int display_options; 
- extern unsigned noise_level; 
- extern int noise_block; 
- extern int tc_moves; 
- extern int tc_time; 
- extern int tc_time_remaining[2]; 
- extern int tc_moves_remaining[2]; 
- extern int tc_secondary_moves; 
- extern int tc_secondary_time; 
- extern int tc_increment; 
- extern int tc_sudden_death; 
- extern int tc_safety_margin; 
- extern int draw_score[2]; 
- extern char kibitz_text[4096]; 
- extern int kibitz_depth; 
- extern int move_number; 
- extern int moves_out_of_book; 
- extern int first_nonbook_factor; 
- extern int first_nonbook_span; 
- extern int smp_nice; 
- #  if defined(SKILL) 
- extern int skill; 
- #  endif 
- extern int book_learn_eval[LEARN_INTERVAL]; 
- extern int book_learn_depth[LEARN_INTERVAL]; 
- extern int learn_seekto[64]; 
- extern uint64_t learn_key[64]; 
- extern int learn_nmoves[64]; 
- extern uint64_t book_learn_key; 
- extern int learn_positions_count; 
- extern int book_learn_nmoves; 
- extern int book_learn_seekto; 
- extern int usage_level; 
- extern size_t hash_table_size; 
- extern size_t hash_path_size; 
- extern uint64_t hash_mask; 
- extern uint64_t mask_clear_entry; 
- extern uint64_t hash_path_mask; 
- extern size_t pawn_hash_table_size; 
- extern uint64_t pawn_hash_mask; 
- extern size_t eval_hash_table_size; 
- extern uint64_t eval_hash_mask; 
- extern HASH_ENTRY *hash_table; 
- extern HPATH_ENTRY *hash_path; 
- extern PAWN_HASH_ENTRY *pawn_hash_table; 
- extern uint64_t *eval_hash_table; 
- extern void *segments[MAX_BLOCKS + 32][2]; 
- extern int nsegments; 
- extern const int pcval[7]; 
- extern const int p_vals[7]; 
- extern const int MVV_LVA[7][7]; 
- extern const int pieces[2][7]; 
- extern const int lower_n; 
- extern const int lower_b; 
- extern const int mobility_score_n[4]; 
- extern const int mobility_score_b[4]; 
- extern const int mobility_score_r[4]; 
- extern const int mob_curve_r[48]; 
- extern PATH last_pv; 
- extern int last_value; 
- extern const char translate[13]; 
- extern const char empty_sqs[9]; 
- extern const int mate[64]; 
- extern const uint64_t magic_rook[64]; 
- extern const uint64_t magic_rook_mask[64]; 
- extern const unsigned magic_rook_shift[64]; 
- extern const uint64_t mobility_mask_b[4]; 
- extern const uint64_t mobility_mask_r[4]; 
- extern int16_t *magic_bishop_mobility_indices[64]; 
- extern int16_t magic_bishop_mobility_table[5248]; 
- extern uint64_t *magic_rook_indices[64]; 
- extern uint64_t magic_rook_table[102400]; 
- extern int16_t *magic_rook_mobility_indices[64]; 
- extern int16_t magic_rook_mobility_table[102400]; 
- extern const uint64_t magic_bishop[64]; 
- extern const uint64_t magic_bishop_mask[64]; 
- extern const unsigned magic_bishop_shift[64]; 
- extern uint64_t *magic_bishop_indices[64]; 
- extern uint64_t magic_bishop_table[5248]; 
- extern int16_t *magic_bishop_mobility_indices[64]; 
- extern int16_t magic_bishop_mobility_table[5248]; 
- extern int8_t directions[64][64]; 
- extern uint64_t pawn_attacks[2][64]; 
- extern uint64_t knight_attacks[64]; 
- extern uint64_t rook_attacks[64]; 
- extern uint64_t bishop_attacks[64]; 
- extern POSITION display; 
- extern uint64_t king_attacks[64]; 
- extern uint64_t intervening[64][64]; 
- extern int history[1024]; 
- extern KILLER counter_move[4096]; 
- extern KILLER move_pair[4096]; 
- extern const uint64_t randoms[2][7][64]; 
- extern const uint64_t castle_random[2][2]; 
- extern const uint64_t enpassant_random[65]; 
- extern uint64_t clear_mask[65]; 
- extern uint64_t set_mask[65]; 
- extern uint64_t file_mask[8]; 
- extern uint64_t rank_mask[8]; 
- extern const uint64_t OO[2]; 
- extern const uint64_t OOO[2]; 
- extern const uint64_t mask_efgh, mask_fgh, mask_abc, mask_abcd; 
- extern const uint64_t mask_advance_2_w; 
- extern const uint64_t mask_advance_2_b; 
- extern const uint64_t mask_left_edge; 
- extern const uint64_t mask_right_edge; 
- extern const uint64_t mask_not_edge; 
- extern const uint64_t mask_rook_files; 
- extern const uint64_t dark_squares; 
- extern const uint64_t not_rook_pawns; 
- extern const uint64_t not_rook_files; 
- extern uint64_t plus1dir[65]; 
- extern uint64_t plus7dir[65]; 
- extern uint64_t plus8dir[65]; 
- extern uint64_t plus9dir[65]; 
- extern uint64_t minus1dir[65]; 
- extern uint64_t minus7dir[65]; 
- extern uint64_t minus8dir[65]; 
- extern uint64_t minus9dir[65]; 
- extern uint64_t mask_eptest[64]; 
- #  if !defined(INLINEASM) 
- extern unsigned char msb[65536]; 
- extern unsigned char lsb[65536]; 
- #  endif 
- extern unsigned char msb_8bit[256]; 
- extern unsigned char lsb_8bit[256]; 
- extern unsigned char pop_cnt_8bit[256]; 
- extern uint64_t mask_pawn_connected[2][64]; 
- extern uint64_t mask_pawn_isolated[64]; 
- extern uint64_t mask_passed[2][64]; 
- extern uint64_t mask_pattacks[2][64]; 
- extern uint64_t pawn_race[2][2][64]; 
- extern BOOK_POSITION book_buffer[BOOK_CLUSTER_SIZE]; 
- extern BOOK_POSITION book_buffer_char[BOOK_CLUSTER_SIZE]; 
- extern const int rankflip[2][8]; 
- extern const int sqflip[2][64]; 
- extern const int rank1[2]; 
- extern const int rank2[2]; 
- extern const int rank3[2]; 
- extern const int rank4[2]; 
- extern const int rank5[2]; 
- extern const int rank6[2]; 
- extern const int rank7[2]; 
- extern const int rank8[2]; 
- extern const int epdir[2]; 
- extern const int csq[2]; 
- extern const int dsq[2]; 
- extern const int esq[2]; 
- extern const int fsq[2]; 
- extern const int gsq[2]; 
- extern const int sign[2]; 
- extern const char square_color[64]; 
- extern uint64_t distance_ring[64][8]; 
- extern const int OOsqs[2][3]; 
- extern const int OOOsqs[2][3]; 
- extern const int OOfrom[2]; 
- extern const int OOto[2]; 
- extern const int OOOto[2]; 
- extern const int epsq[2]; 
- extern const int rook_A[2]; 
- extern const int rook_D[2]; 
- extern const int rook_F[2]; 
- extern const int rook_G[2]; 
- extern const int rook_H[2]; 
- extern const int capleft[2]; 
- extern const int capright[2]; 
- extern const int pawnadv1[2]; 
- extern const int pawnadv2[2]; 
- #  if !defined(NOEGTB) 
- extern int cbEGTBCompBytes; 
- #  endif 
- extern int piece_values[2][7]; 
- extern struct personality_term personality_packet[256]; 
- #endif 
-