* Please do not modify it directly, edit function.cppy instead!
* function.py options: maxargs=@maxargs@
*
- * GiNaC Copyright (C) 1999-2016 Johannes Gutenberg University Mainz, Germany
+ * GiNaC Copyright (C) 1999-2020 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
void function_options::initialize()
{
- set_name("unnamed_function", "\\\\mbox{unnamed}");
+ set_name("unnamed_function", "\\mbox{unnamed}");
nparams = 0;
eval_f = evalf_f = real_part_f = imag_part_f = conjugate_f = expand_f
= derivative_f = expl_derivative_f = power_f = series_f = nullptr;
{
name = n;
if (tn==std::string())
- TeX_name = "\\\\mbox{"+name+"}";
+ TeX_name = "\\mbox{"+name+"}";
else
TeX_name = tn;
return *this;
void function::read_archive(const archive_node& n, lst& sym_lst)
{
inherited::read_archive(n, sym_lst);
- // Find serial number by function name
+ // Find serial number by function name and number of parameters
+ unsigned np = seq.size();
std::string s;
if (n.find_string("name", s)) {
unsigned int ser = 0;
for (auto & it : registered_functions()) {
- if (s == it.name) {
+ if (s == it.name && np == registered_functions()[ser].nparams) {
serial = ser;
return;
}
++ser;
}
- throw (std::runtime_error("unknown function '" + s + "' in archive"));
+ throw (std::runtime_error("unknown function '" + s +
+ "' with " + std::to_string(np) + " parameters in archive"));
} else
throw (std::runtime_error("unnamed function in archive"));
}