Example #1
0
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);
}
Example #2
0
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)
}
Example #3
0
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++;
    }
}
Example #4
0
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);
}