/* * This file is part of Freecell Solver. It is subject to the license terms in * the COPYING.txt file found in the top-level directory of this distribution * and at http://fc-solve.shlomifish.org/docs/distro/COPYING.html . No part of * Freecell Solver, including this file, may be copied, modified, propagated, * or distributed except according to the terms contained in the COPYING file. * * Copyright (c) 2000 Shlomi Fish */ /* * config.h - Configuration file for Freecell Solver * * ${AUTOGENERATED_CONFIG_H} */ #pragma once #ifdef __cplusplus extern "C" { #endif #include "freecell-solver/fcs_back_compat.h" #cmakedefine COMPACT_STATES #cmakedefine INDIRECT_STACK_STATES #cmakedefine FCS_RCS_STATES #cmakedefine CARD_DEBUG_PRES /* The size of a single pack in alloc.c/alloc.h measured in 1024 chars. */ #cmakedefine FCS_IA_PACK_SIZE ${FCS_IA_PACK_SIZE} #ifndef FCS_FREECELL_ONLY #cmakedefine FCS_FREECELL_ONLY #endif #cmakedefine FCS_DISABLE_SIMPLE_SIMON #cmakedefine FCS_SINGLE_HARD_THREAD #cmakedefine FCS_WITHOUT_FC_PRO_MOVES_COUNT #cmakedefine FCS_WITHOUT_TRIM_MAX_STORED_STATES /* * Get rid of the visited_iter counter on each state's extra_info. It is * used a little for debugging, but otherwise is not needed for the run-time * operation. * */ #cmakedefine FCS_WITHOUT_VISITED_ITER /* * Disable the patsolve code at compile time in case it isn't wanted. * */ #ifndef FCS_DISABLE_PATSOLVE #cmakedefine FCS_DISABLE_PATSOLVE #endif /* * Get rid of the "depth" field on each state's extra_info. It is * used a little, but otherwise is not needed for the run-time * operation. * */ #cmakedefine FCS_HARD_CODE_STATE_DEPTH_FIELD #cmakedefine FCS_WITHOUT_DEPTH_FIELD #cmakedefine FCS_WITHOUT_CMD_LINE_HELP #cmakedefine FCS_WITHOUT_ITER_HANDLER #cmakedefine FCS_WITHOUT_MAX_NUM_STATES #cmakedefine FCS_DISABLE_MULTI_FLARES #cmakedefine FCS_DISABLE_MULTI_NEXT_INSTS #cmakedefine FCS_DISABLE_MOVES_TRACKING #cmakedefine FCS_DISABLE_NUM_STORED_STATES #cmakedefine FCS_WITHOUT_EXPORTED_RESUME_SOLUTION #cmakedefine FCS_DISABLE_STATE_VALIDITY_CHECK #cmakedefine FCS_ENABLE_PRUNE__R_TF__UNCOND #cmakedefine FCS_USE_PRECOMPILED_CMD_LINE_THEME #cmakedefine FCS_RANGE_SOLVERS_PRINT_SOLVED #cmakedefine FCS_UNSAFE /* * This flag controls a hash behaviour. It seems to improve things somewhat. * */ #cmakedefine FCS_INLINED_HASH_COMPARISON ${FCS_INLINED_HASH_COMPARISON} #cmakedefine FCS_INT_BIT_SIZE_LOG2 ${FCS_INT_BIT_SIZE_LOG2} #cmakedefine FCS_WITH_CONTEXT_VARIABLE /* This is an integer that specifies the maximal size of identifiers * in chars/bytes. */ #cmakedefine FCS_MAX_IDENT_LEN ${FCS_MAX_IDENT_LEN} /* * The size of void*. */ @SIZEOF_VOID_P_CODE@ // This flag determines whether we are using the more compact but slower, // internal move tokens. #cmakedefine FCS_USE_COMPACT_MOVE_TOKENS #define FCS_HARD_CODED_NUM_FCS_FOR_FREECELL_ONLY ${FCS_HARD_CODED_NUM_FCS_FOR_FREECELL_ONLY} #ifndef FCS_HARD_CODED_NUM_FCS_FOR_FREECELL_ONLY #define FCS_HARD_CODED_NUM_FCS_FOR_FREECELL_ONLY 4 #endif #ifndef FCS_HARD_CODE_SCANS_SYNERGY_AS_TRUE #cmakedefine FCS_HARD_CODE_SCANS_SYNERGY_AS_TRUE #endif #ifndef FCS_HARD_CODE_REPARENT_STATES_AS_FALSE #cmakedefine FCS_HARD_CODE_REPARENT_STATES_AS_FALSE #endif #ifndef FCS_HARD_CODE_CALC_REAL_DEPTH_AS_FALSE #cmakedefine FCS_HARD_CODE_CALC_REAL_DEPTH_AS_FALSE #endif #ifdef FCS_FREECELL_ONLY #define HARD_CODED_NUM_FREECELLS FCS_HARD_CODED_NUM_FCS_FOR_FREECELL_ONLY #define HARD_CODED_NUM_STACKS 8 #define HARD_CODED_NUM_DECKS 1 #endif #ifdef HARD_CODED_NUM_FREECELLS #define MAX_NUM_FREECELLS HARD_CODED_NUM_FREECELLS #else #define MAX_NUM_FREECELLS ${MAX_NUM_FREECELLS} #endif #cmakedefine FCS_DBM_FREECELLS_NUM ${FCS_DBM_FREECELLS_NUM} #ifdef HARD_CODED_NUM_STACKS #define MAX_NUM_STACKS HARD_CODED_NUM_STACKS #else #define MAX_NUM_STACKS ${MAX_NUM_STACKS} #endif #define MAX_NUM_INITIAL_CARDS_IN_A_STACK ${MAX_NUM_INITIAL_CARDS_IN_A_STACK} #ifdef HARD_CODED_NUM_DECKS #define MAX_NUM_DECKS HARD_CODED_NUM_DECKS #else #define MAX_NUM_DECKS ${MAX_NUM_DECKS} #endif #define FCS_STATE_STORAGE_INDIRECT 0 #define FCS_STATE_STORAGE_INTERNAL_HASH 1 #define FCS_STATE_STORAGE_LIBAVL2_TREE 2 #define FCS_STATE_STORAGE_LIBREDBLACK_TREE 3 #define FCS_STATE_STORAGE_GLIB_TREE 4 #define FCS_STATE_STORAGE_GLIB_HASH 5 #define FCS_STATE_STORAGE_DB_FILE 6 #define FCS_STATE_STORAGE_JUDY 7 #define FCS_STATE_STORAGE_GOOGLE_DENSE_HASH 8 #define FCS_STATE_STORAGE_KAZ_TREE 9 #define FCS_STACK_STORAGE_NULL (-1) #define FCS_STACK_STORAGE_INTERNAL_HASH 0 #define FCS_STACK_STORAGE_LIBAVL2_TREE 1 #define FCS_STACK_STORAGE_LIBREDBLACK_TREE 2 #define FCS_STACK_STORAGE_GLIB_TREE 3 #define FCS_STACK_STORAGE_GLIB_HASH 4 #define FCS_STACK_STORAGE_JUDY 5 #define FCS_STACK_STORAGE_GOOGLE_DENSE_HASH 6 #define FCS_STATE_STORAGE ${FCS_STATE_STORAGE} #define FCS_STACK_STORAGE ${FCS_STACK_STORAGE} #define FCS_RCS_CACHE_STORAGE_JUDY 0 #define FCS_RCS_CACHE_STORAGE_KAZ_TREE 1 #define FCS_RCS_CACHE_STORAGE ${FCS_RCS_CACHE_STORAGE} #cmakedefine FCS_ZERO_FREECELLS_MODE #cmakedefine HAVE_STRNCASECMP #cmakedefine HAVE_STRNDUP #cmakedefine HAVE_VASPRINTF #cmakedefine FCS_USE_INT128_FOR_VAR_BASE #define FCS_CMD_LINE_ENABLE_INCREMENTAL_SOLVING ${FCS_CMD_LINE_ENABLE_INCREMENTAL_SOLVING} /* Version number of package */ #define VERSION "${VERSION}" #define FCS_WHICH_STATES_GOOGLE_HASH__DENSE 0 #define FCS_WHICH_STATES_GOOGLE_HASH__SPARSE 1 #define FCS_WHICH_COLUMNS_GOOGLE_HASH__DENSE 0 #define FCS_WHICH_COLUMNS_GOOGLE_HASH__SPARSE 1 #define FCS_WHICH_COLUMNS_GOOGLE_HASH ${FCS_WHICH_COLUMNS_GOOGLE_HASH} #define FCS_WHICH_STATES_GOOGLE_HASH ${FCS_WHICH_STATES_GOOGLE_HASH} // How many ranks there are - Ace to King == 13. #define FCS_MAX_RANK ${FCS_MAX_RANK} #ifdef __cplusplus }; #endif