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