ex conjugate() const;
ex real_part() const;
ex imag_part() const;
+ void archive(archive_node& n) const;
+ void read_archive(const archive_node& n, lst& syms);
protected:
ex derivative(const symbol & s) const;
bool is_equal_same_type(const basic & other) const;
protected:
unsigned serial;
};
+GINAC_DECLARE_UNARCHIVER(function);
// utility functions/macros
//////////
/** Construct object from archive_node. */
-function::function(const archive_node &n, lst &sym_lst) : inherited(n, sym_lst)
+void function::read_archive(const archive_node& n, lst& sym_lst)
{
+ inherited::read_archive(n, sym_lst);
// Find serial number by function name
std::string s;
if (n.find_string("name", s)) {
throw (std::runtime_error("unnamed function in archive"));
}
-/** Unarchive the object. */
-ex function::unarchive(const archive_node &n, lst &sym_lst)
-{
- return (new function(n, sym_lst))->setflag(status_flags::dynallocated);
-}
-
/** Archive the object. */
void function::archive(archive_node &n) const
{
n.add_string("name", registered_functions()[serial].name);
}
+GINAC_BIND_UNARCHIVER(function);
+
//////////
// functions overriding virtual functions from base classes
//////////