* This file must be processed with yacc/bison. */
/*
- * GiNaC Copyright (C) 1999-2008 Johannes Gutenberg University Mainz, Germany
+ * GiNaC Copyright (C) 1999-2010 Johannes Gutenberg University Mainz, Germany
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
static ex f_find(const exprseq &e)
{
- lst found;
+ exset found;
e[0].find(e[1], found);
- return found;
+ lst l;
+ for (exset::const_iterator i = found.begin(); i != found.end(); ++i)
+ l.append(*i);
+ return l;
}
static ex f_fsolve(const exprseq &e)
static ex f_match(const exprseq &e)
{
- lst repl_lst;
- if (e[0].match(e[1], repl_lst))
+ 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));
return repl_lst;
- else
- return fail();
+ }
+ throw std::runtime_error("FAIL");
}
static ex f_normal2(const exprseq &e)
static ex f_ginac_function(const exprseq &es, int serial)
{
- return function(serial, es).eval(1);
+ return GiNaC::function(serial, es).eval(1);
}
// All registered GiNaC functions
void greeting(void)
{
cout << "ginsh - GiNaC Interactive Shell (" << PACKAGE << " V" << VERSION << ")" << endl;
- cout << " __, _______ Copyright (C) 1999-2008 Johannes Gutenberg University Mainz,\n"
+ cout << " __, _______ Copyright (C) 1999-2010 Johannes Gutenberg University Mainz,\n"
<< " (__) * | Germany. This is free software with ABSOLUTELY NO WARRANTY.\n"
<< " ._) i N a C | You are welcome to redistribute it under certain conditions.\n"
<< "<-------------' For details type `warranty;'.\n" << endl;