void tarjan_shared_init (run_t *run) { HREassert (SCC_STATE.g == 0); set_alg_local_init (run->alg, tarjan_local_init); set_alg_global_init (run->alg, tarjan_global_init); set_alg_global_deinit (run->alg, tarjan_global_deinit); set_alg_local_deinit (run->alg, tarjan_local_deinit); set_alg_print_stats (run->alg, tarjan_print_stats); set_alg_run (run->alg, tarjan_run); set_alg_reduce (run->alg, tarjan_reduce); }
void ndfs_shared_init (run_t *run) { set_alg_local_init (run->alg, ndfs_local_init); set_alg_global_init (run->alg, ndfs_global_init); set_alg_global_deinit (run->alg, ndfs_global_deinit); set_alg_local_deinit (run->alg, ndfs_local_deinit); set_alg_print_stats (run->alg, ndfs_print_stats); set_alg_run (run->alg, ndfs_blue); set_alg_state_seen (run->alg, ndfs_state_seen); set_alg_reduce (run->alg, ndfs_reduce); init_threshold = THRESHOLD; // Non-distributed counting (searches completely overlap) }
void cndfs_shared_init (run_t *run) { HREassert (GRED.g == 0); HREassert (GGREEN.g == 1); HREassert (GDANGEROUS.g == 2); set_alg_local_init (run->alg, cndfs_local_init); set_alg_global_init (run->alg, cndfs_global_init); set_alg_global_deinit (run->alg, cndfs_global_deinit); set_alg_local_deinit (run->alg, cndfs_local_deinit); set_alg_print_stats (run->alg, cndfs_print_stats); set_alg_run (run->alg, endfs_blue); set_alg_state_seen (run->alg, cndfs_state_seen); set_alg_reduce (run->alg, cndfs_reduce); if (run->shared != NULL) return; run->shared = RTmallocZero (sizeof(alg_shared_t)); run->shared->color_bit_shift = 0; run->shared->top_level = run; run->shared->run_is_stopped = run_get_is_stopped (run); run->shared->run_stop = run_get_stop (run); run_set_is_stopped (run, cndfs_is_stopped); run_set_stop (run, cndfs_stop); int i = 1; run_t *previous = run; run_t *next = NULL; while (strategy[i] != Strat_None) { next = run_create (false); next->shared = RTmallocZero (sizeof(alg_shared_t)); next->shared->previous = previous; next->shared->top_level = run; next->shared->rec = NULL; run_set_is_stopped (next, cndfs_is_stopped); run_set_stop (next, cndfs_stop); next->shared->color_bit_shift = previous->shared->color_bit_shift + num_global_bits (strategy[i]); alg_shared_init_strategy (next, strategy[i]); previous->shared->rec = next; previous = next; i++; } }
void timed_shared_init (run_t *run) { set_alg_local_init (run->alg, timed_local_init); set_alg_global_init (run->alg, timed_global_init); set_alg_global_deinit (run->alg, timed_destroy); set_alg_local_deinit (run->alg, timed_destroy_local); set_alg_print_stats (run->alg, timed_print_stats); set_alg_run (run->alg, timed_run); set_alg_reduce (run->alg, timed_reduce); run->shared = RTmallocZero (sizeof (ta_alg_shared_t)); reach_init_shared (run); ta_alg_shared_t *shared = (ta_alg_shared_t *) run->shared; shared->lmap = state_store_lmap (global->store); }