Stop
Definition: const.h:70
#define SPLIT_MAX_SLAVES
Definition: settings.h:107
volatile int n_slave
Definition: ybwc.h:54
struct Node * parent
Definition: ybwc.h:61
int beta
Definition: ybwc.h:52
volatile bool is_waiting
Definition: ybwc.h:56
bool pv_node
Definition: ybwc.h:53
volatile bool is_helping
Definition: ybwc.h:65
struct Search * search
Definition: ybwc.h:59
int height
Definition: ybwc.h:58
struct Move * move
Definition: ybwc.h:62
volatile int n_moves_done
Definition: ybwc.h:63
volatile int alpha
Definition: ybwc.h:51
struct Search * slave[SPLIT_MAX_SLAVES]
Definition: ybwc.h:60
Task help[1]
Definition: ybwc.h:66
volatile int bestscore
Definition: ybwc.h:50
Lock lock
Definition: ybwc.h:67
volatile bool stop_point
Definition: ybwc.h:55
volatile int bestmove
Definition: ybwc.h:49
Condition cond
Definition: ybwc.h:68
int depth
Definition: ybwc.h:57
volatile int n_moves_todo
Definition: ybwc.h:64
Task ** stack
Definition: ybwc.h:96
int n
Definition: ybwc.h:97
SpinLock spin
Definition: ybwc.h:94
Task * task
Definition: ybwc.h:95
int n_idle
Definition: ybwc.h:98
struct Node * node
Definition: ybwc.h:34
struct Move * move
Definition: ybwc.h:35
unsigned long long n_calls
Definition: ybwc.h:37
Condition cond
Definition: ybwc.h:40
volatile bool is_helping
Definition: ybwc.h:32
unsigned long long n_nodes
Definition: ybwc.h:38
struct Search * search
Definition: ybwc.h:33
volatile bool loop
Definition: ybwc.h:30
Thread thread
Definition: ybwc.h:36
Lock lock
Definition: ybwc.h:39
volatile bool run
Definition: ybwc.h:31
struct TaskStack * container
Definition: ybwc.h:41
Miscellaneous utilities header.
void node_update(Node *, struct Move *)
Update a node.
Definition: ybwc.c:261
Task * task_stack_get_idle_task(TaskStack *)
Return, if available, an idle task.
Definition: ybwc.c:638
void task_stack_clear(TaskStack *)
void task_stack_stop(TaskStack *, const Stop)
void task_stack_init(TaskStack *, const int)
Initialize the stack of tasks.
Definition: ybwc.c:560
void task_free(Task *)
Free resources used by a task.
Definition: ybwc.c:540
void node_init(Node *, struct Search *, const int, const int, const int, const int, Node *)
Initialize a node.
Definition: ybwc.c:59
void node_stop_slaves(Node *)
void node_free(Node *)
Free Resources allocated by a node.
Definition: ybwc.c:95
bool node_split(Node *, struct Move *)
Node split.
Definition: ybwc.c:167
void task_stack_put_idle_task(TaskStack *, Task *)
Put back an idle task after using it.
Definition: ybwc.c:661
struct Move * node_first_move(Node *, struct MoveList *)
Get the first move of the move list.
Definition: ybwc.c:297
void task_stack_resize(TaskStack *, const int)
Resize the stack of tasks.
Definition: ybwc.c:626
struct Move * node_next_move(Node *)
Get the next move of the move list.
Definition: ybwc.c:345
void task_search(Task *task)
A parallel search within a Task structure.
Definition: ybwc.c:362
void node_wait_slaves(Node *)
Wait for slaves termination.
Definition: ybwc.c:212
void task_stack_free(TaskStack *)
Free resources used by the stack of tasks.
Definition: ybwc.c:607
unsigned long long task_stack_count_nodes(TaskStack *)
void task_init(Task *)
Initialize a task.
Definition: ybwc.c:520
void * task_loop(void *)
The main loop runned by a task.
Definition: ybwc.c:453