if (i == assigned_symbol_table.end())
$$ = $1;
else
- $$ = i->second.eval();
+ $$ = i->second;
}
| '\'' T_SYMBOL '\'' {$$ = $2;}
| T_LITERAL {$$ = $1;}
| '[' matrix ']' {$$ = lst_to_matrix(ex_to<lst>($2));}
;
-exprseq : exp {$$ = exprseq($1);}
+exprseq : exp {$$ = exprseq{$1};}
| exprseq ',' exp {exprseq es(ex_to<exprseq>($1)); $$ = es.append($3);}
;
| list {$$ = $1;}
;
-list : exp {$$ = lst($1);}
+list : exp {$$ = lst{$1};}
| list ',' exp {lst l(ex_to<lst>($1)); $$ = l.append($3);}
;
-matrix : '[' row ']' {$$ = lst($2);}
+matrix : '[' row ']' {$$ = lst{$2};}
| matrix ',' '[' row ']' {lst l(ex_to<lst>($1)); $$ = l.append($4);}
;
-row : exp {$$ = lst($1);}
+row : exp {$$ = lst{$1};}
| row ',' exp {lst l(ex_to<lst>($1)); $$ = l.append($3);}
;
static ex f_convert_H_to_Li(const exprseq &e) {return convert_H_to_Li(e[0], e[1]);}
static ex f_degree(const exprseq &e) {return e[0].degree(e[1]);}
static ex f_denom(const exprseq &e) {return e[0].denom();}
-static ex f_eval1(const exprseq &e) {return e[0].eval();}
static ex f_evalf1(const exprseq &e) {return e[0].evalf();}
static ex f_evalm(const exprseq &e) {return e[0].evalm();}
static ex f_eval_integ(const exprseq &e) {return e[0].eval_integ();}
return fail();
}
-static ex f_eval2(const exprseq &e)
-{
- CHECK_ARG(1, numeric, eval);
- return e[0].eval(ex_to<numeric>(e[1]).to_int());
-}
-
static ex f_evalf2(const exprseq &e)
{
CHECK_ARG(1, numeric, evalf);
exset found;
e[0].find(e[1], found);
lst l;
- for (exset::const_iterator i = found.begin(); i != found.end(); ++i)
- l.append(*i);
+ for (auto & i : found)
+ l.append(i);
return l;
}
public:
apply_map_function(const ex & a) : apply(a) {}
virtual ~apply_map_function() {}
- ex operator()(const ex & e) { return apply.subs(wild() == e, true); }
+ ex operator()(const ex & e) override { return apply.subs(wild() == e, true); }
};
static ex f_map(const exprseq &e)
exmap repls;
if (e[0].match(e[1], repls)) {
lst repl_lst;
- for (exmap::const_iterator i = repls.begin(); i != repls.end(); ++i)
- repl_lst.append(relational(i->first, i->second, relational::equal));
+ for (auto & i : repls)
+ repl_lst.append(relational(i.first, i.second, relational::equal));
return repl_lst;
}
throw std::runtime_error("FAIL");
{"diff", f_diff2, 2},
{"diff", f_diff3, 3},
{"divide", f_divide, 2},
- {"eval", f_eval1, 1},
- {"eval", f_eval2, 2},
{"evalf", f_evalf1, 1},
{"evalf", f_evalf2, 2},
{"evalm", f_evalm, 1},
static ex f_ginac_function(const exprseq &es, int serial)
{
- return GiNaC::function(serial, es).eval(1);
+ return GiNaC::function(serial, es);
}
// All registered GiNaC functions
namespace GiNaC {
static void ginsh_get_ginac_functions(void)
{
- vector<function_options> gfv = function::get_registered_functions();
- vector<function_options>::const_iterator i = gfv.begin(), end = gfv.end();
unsigned serial = 0;
- while (i != end) {
- fcns.insert(make_pair(i->get_name(), fcn_desc(f_ginac_function, i->get_nparams(), serial)));
- ++i;
+ for (auto & i : function::get_registered_functions()) {
+ fcns.insert(make_pair(i.get_name(), fcn_desc(f_ginac_function, i.get_nparams(), serial)));
serial++;
}
}