int main(int argc, const char *argv[]) { init_tools(); init_values(); init_evaluator(); init_interpreter(); init_tests(); init_sexp_to_c(); // TO TRY: Add an -O3 flag to Xcode's compile. Then compile and profile, and see if it runs faster. // run_tests(); // run_benchmarks(); if (argc > 1) { if (streq(argv[1], "test")) { run_tests(); } else if (streq(argv[1], "benchmark")) { run_benchmarks(); } else { value str = value_set_str(argv[1]); value_import(str); value_clear(&str); } } else { run_interpreter(); } return 0; }
/* * Print model, including the aliased terms * - one line per term * - if model->has_alias is true, then the value of all terms in * the alias table is displayed * - if model->has_alias is false, then this is the same as model_print */ void model_pp_full(yices_pp_t *printer, model_t *model) { evaluator_t eval; ivector_t v; term_t *a; uint32_t n; if (model->has_alias && model->alias_map != NULL) { init_evaluator(&eval, model); // collect all terms that have a value init_ivector(&v, 0); model_collect_terms(model, true, model->terms, term_to_print, &v); n = v.size; a = v.data; eval_pp_bool_assignments(printer, &eval, a, n); eval_pp_arithmetic_assignments(printer, &eval, a, n); eval_pp_bitvector_assignments(printer, &eval, a, n); eval_pp_constant_assignments(printer, &eval, a, n); eval_pp_tuple_assignments(printer, &eval, a, n); eval_pp_function_assignments(printer, &eval, a, n); vtbl_pp_queued_functions(printer, &model->vtbl, true); delete_evaluator(&eval); delete_ivector(&v); } else { model_pp(printer, model); } }