示例#1
0
void
tarjan_local_init (run_t *run, wctx_t *ctx)
{
    ctx->local         = RTmallocZero (sizeof (alg_local_t));
    ctx->local->target = state_info_create ();

    // extend state_info with tarjan_state information
    state_info_add_simple (ctx->local->target, sizeof (uint32_t),
                          &ctx->local->target_tarjan.index);
    state_info_add_simple (ctx->local->target, sizeof (uint32_t),
                          &ctx->local->target_tarjan.lowlink);

    state_info_add_simple (ctx->state, sizeof (uint32_t),
                          &ctx->local->state_tarjan.index);
    state_info_add_simple (ctx->state, sizeof (uint32_t),
                          &ctx->local->state_tarjan.lowlink);

    size_t len = state_info_serialize_int_size (ctx->state);
    ctx->local->search_stack = dfs_stack_create (len);
    ctx->local->tarjan_stack = dfs_stack_create (len);

    ctx->local->cnt.scc_count       = 0;
    ctx->local->cnt.tarjan_counter  = 0;

    ctx->local->visited_states =
            fset_create (sizeof (ref_t), sizeof (raw_data_t), 10, dbs_size);

#ifdef SEARCH_COMPLETE_GRAPH
    // provide the input file name to dlopen_setup
    dlopen_setup (files[0]);
#endif

    (void) run; 
}
示例#2
0
文件: timed.c 项目: alaarman/ltsmin
void
timed_global_init   (run_t *run, wctx_t *ctx)
{
    if (PINS_POR)
        Abort ("POR not compatible with timed automata");
    ctx->global = RTmallocZero (sizeof(ta_alg_global_t));
    ta_alg_global_t    *sm = (ta_alg_global_t *) ctx->global;

    // Extend state info with a lattice location
    state_info_add_simple (ctx->state, sizeof(lm_loc_t), &sm->lloc);
    state_info_add_simple (ctx->initial, sizeof(lm_loc_t), &sm->lloc);
    state_info_t       *si_perm = permute_state_info(ctx->permute);
    state_info_add_simple (si_perm, sizeof(lm_loc_t), &sm->lloc);

    reach_global_setup (run, ctx);
}