diff options
Diffstat (limited to 'include/engine/search.h')
| -rw-r--r-- | include/engine/search.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/include/engine/search.h b/include/engine/search.h new file mode 100644 index 0000000..94b5da5 --- /dev/null +++ b/include/engine/search.h @@ -0,0 +1,36 @@ +#ifndef SEARCH_H +#define SEARCH_H + +#include <stdatomic.h> + +#include "bitboard.h" +#include "engine/moves.h" +#include "engine/ttable.h" +#include "ipc/go_args.h" + +#define SEARCH_MATE 30000 +#define SEARCH_INF 32000 + +typedef struct { + i32 score; + move_t best_move; +} search_result_t; + +// shared per-search context. `stop` is signalled by the UCI thread (SIGSTOP), +// `go_args` carries the time/node/depth limits, `nodes` counts visited nodes. +typedef struct { + ttable_t *ttable; + go_args_t *go_args; + atomic_bool *stop; + u64 *nodes; +} search_ctx_t; + +search_result_t search( + position_t position, + int depth, + int alpha, + int beta, + search_ctx_t *ctx +); + +#endif // SEARCH_H |
