/*--- evaluate predictions ---*/ virtual void eval_pred(int argc, const char *argv[]) const { const char *eyec = "eval_pred"; AzX::throw_if((argc != 4 && argc != 5), AzInputError, "AzpEv::eval_pred", "Arguments: y_fn is_y_text pred_fn Regression|Multicat|_ [th_fn]"); int argx = 0; const char *y_fn = argv[argx++]; const char *p_fn = argv[argx++]; const char *typ = argv[argx++]; const char *th_fn = (argx < argc) ? argv[argx++] : ""; eval_pred(y_fn, p_fn, typ, th_fn, log_out); }
// Compute the multi-step evaluation of the term t. Term* eval(Term* t) { switch (t->kind) { case if_term: return eval_if(as<If>(t)); case succ_term: return eval_succ(as<Succ>(t)); case pred_term: return eval_pred(as<Pred>(t)); case iszero_term: return eval_iszero(as<Iszero>(t)); case app_term: return eval_app(as<App>(t)); case call_term: return eval_call(as<Call>(t)); case ref_term: return eval_ref(as<Ref>(t)); case print_term: return eval_print(as<Print>(t)); case def_term: return eval_def(as<Def>(t)); case prog_term: return eval_prog(as<Prog>(t)); case comma_term: return eval_comma(as<Comma>(t)); default: break; } return t; }