/* * Check satisfiability: the result is stored in solver->status * - if solver->status is EF_STATUS_SAT then the model is in solver->exists_model * (as in ef_solver_search). */ void ef_solver_check(ef_solver_t *solver, const param_t *parameters, ef_gen_option_t gen_mode, uint32_t max_samples, uint32_t max_iters) { solver->parameters = parameters; solver->option = gen_mode; solver->max_samples = max_samples; solver->max_iters = max_iters; solver->scan_idx = 0; assert(solver->exists_context == NULL && solver->forall_context == NULL && solver->exists_model == NULL); ef_solver_search(solver); }
/* * Check satisfiability: the result is stored in solver->status * - if solver->status is EF_STATUS_SAT then the model is in solver->exists_model * (as in ef_solver_search). */ void ef_solver_check(ef_solver_t *solver, const param_t *parameters, ef_gen_option_t gen_mode, uint32_t max_samples, uint32_t max_iters) { solver->parameters = parameters; solver->option = gen_mode; solver->max_samples = max_samples; solver->max_iters = max_iters; solver->scan_idx = 0; // adjust mode if (gen_mode == EF_GEN_AUTO_OPTION) { solver->option = EF_GEN_BY_SUBST_OPTION; if (ef_prob_has_arithmetic_uvars(solver->prob)) { solver->option = EF_GEN_BY_PROJ_OPTION; } } assert(solver->exists_context == NULL && solver->forall_context == NULL && solver->exists_model == NULL); ef_solver_search(solver); }