void material_alloc() { ASSERT(sizeof(entry_t)==16); Material->size = TableSize; Material->mask = TableSize - 1; Material->table = (entry_t *) my_malloc(Material->size*sizeof(entry_t)); material_clear(); }
void material_alloc() { int ThreadId; ASSERT(sizeof(entry_t) == 16); if( UseTable ) { for ( ThreadId = 0; ThreadId < NumberThreads; ThreadId++ ) { Material[ThreadId]->size = TableSize; Material[ThreadId]->mask = TableSize - 1; Material[ThreadId]->table = (entry_t *)my_malloc(Material[ThreadId]->size * sizeof(entry_t)); material_clear(ThreadId); } } }
void loop_step(const char * input) { char string[65536]; char buffer[256]; // read a line if (input != NULL) { get_local(string,65536,input); } else { get_stdin(string,65536); } // parse if (false) { } else if (string_start_with(string,"debug ")) { if (!Searching) { parse_debug(string); } else { ASSERT(false); } } else if (string_start_with(string,"go ")) { if (!Searching && !Delay) { init(); parse_go(string); } else { ASSERT(false); } } else if (string_equal(string,"isready")) { if (!Searching && !Delay) { init(); } send("readyok"); // no need to wait when searching (fixit SMK) } else if (string_equal(string,"ponderhit")) { if (Searching) { ASSERT(Infinite); SearchInput->infinite = false; Infinite = false; } else if (Delay) { send_best_move(); Delay = false; } else { ASSERT(false); } } else if (string_start_with(string,"position ")) { if (!Searching && !Delay) { init(); parse_position(string); } else { ASSERT(false); } } else if (string_equal(string,"quit")) { ASSERT(!Searching); // violated by Arena UI ASSERT(!Delay); if (Searching && option_get_int("Threads") > 1) { // Arena issue SearchInfo->stop = true; Infinite = false; smp_sleep(); } trans_free(); tb_close(); egbb_close(); smp_close(); exit(EXIT_SUCCESS); } else if (string_start_with(string,"setoption ")) { if (!Searching && !Delay) { parse_setoption(string); } else { ASSERT(false); } } else if (string_equal(string,"stop")) { if (Searching) { SearchInfo->stop = true; Infinite = false; } else if (Delay) { send_best_move(); Delay = false; } } else if (string_equal(string,"uci")) { ASSERT(!Searching); ASSERT(!Delay); send("id name Fruit reloaded %s", my_version(buffer)); send("id author Fabien Letouzey, Ryan Benitez and Daniel Mehrmann"); option_list(); send("uciok"); } else if (string_equal(string,"ucinewgame")) { if (!Searching && !Delay && Init) { trans_clear(); pawn_clear(); material_clear(); } else { ASSERT(false); } } }