X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?a=blobdiff_plain;f=ginac%2Fstructure.h;h=45ea07915264d8a9518fad208fb847d7bd56ab24;hb=b83c9b10e61c9d572f0ce6e8f0e18dede2f81282;hp=23ae93c0940a6de0e98dc0864a46af4604b4eca1;hpb=68fdf425abf14d016d5f95ee7b9d06a19a3c5926;p=ginac.git diff --git a/ginac/structure.h b/ginac/structure.h index 23ae93c0..45ea0791 100644 --- a/ginac/structure.h +++ b/ginac/structure.h @@ -26,6 +26,8 @@ #include #include "ex.h" +#include "ncmul.h" +#include "operators.h" #include "print.h" namespace GiNaC { @@ -116,7 +118,7 @@ class structure : public basic, public ComparisonPolicy { GINAC_DECLARE_REGISTERED_CLASS(structure, basic) // helpers - static unsigned get_tinfo() { return reg_info.tinfo_key; } + static unsigned get_tinfo() { return reg_info.options.get_id(); } static const char *get_class_name() { return "structure"; } // constructors @@ -160,7 +162,7 @@ protected: public: // substitutions - ex subs(const lst & ls, const lst & lr, unsigned options = 0) const { return inherited::subs(ls, lr, options); } + ex subs(const exmap & m, unsigned options = 0) const { return inherited::subs(m, options); } // function mapping ex map(map_function & f) const { return inherited::map(f); } @@ -181,9 +183,9 @@ public: ex series(const relational & r, int order, unsigned options = 0) const { return inherited::series(r, order, options); } // rational functions - ex normal(lst & sym_lst, lst & repl_lst, int level = 0) const { return inherited::normal(sym_lst, repl_lst, level); } - ex to_rational(lst & repl_lst) const { return inherited::to_rational(repl_lst); } - ex to_polynomial(lst & repl_lst) const { return inherited::to_polynomial(repl_lst); } + ex normal(exmap & repl, exmap & rev_lookup, int level = 0) const { return inherited::normal(repl, rev_lookup, level); } + ex to_rational(exmap & repl) const { return inherited::to_rational(repl); } + ex to_polynomial(exmap & repl) const { return inherited::to_polynomial(repl); } // polynomial algorithms numeric integer_content() const { return 1; } @@ -256,10 +258,7 @@ int structure::compare_same_type(const basic & other) const } template class CP> -registered_class_info structure::reg_info(structure::get_class_name(), "basic", next_structure_tinfo_key++, &structure::unarchive); - -template class CP> -const char *structure::class_name() const { return reg_info.name; } +registered_class_info structure::reg_info = registered_class_info(registered_class_options(structure::get_class_name(), "basic", next_structure_tinfo_key++, &structure::unarchive)); } // namespace GiNaC