Applied print_csrc patch [Grabner/Sheplyakov]
authorJens Vollinga <vollinga@thep.physik.uni-mainz.de>
Mon, 9 Jul 2007 23:51:53 +0000 (23:51 +0000)
committerJens Vollinga <vollinga@thep.physik.uni-mainz.de>
Mon, 9 Jul 2007 23:51:53 +0000 (23:51 +0000)
ginac/idx.cpp
ginac/idx.h

index 80e66bc..3e17569 100644 (file)
@@ -37,6 +37,7 @@ namespace GiNaC {
 GINAC_IMPLEMENT_REGISTERED_CLASS_OPT(idx, basic,
   print_func<print_context>(&idx::do_print).
   print_func<print_latex>(&idx::do_print_latex).
+  print_func<print_csrc>(&idx::do_print_csrc).
   print_func<print_tree>(&idx::do_print_tree))
 
 GINAC_IMPLEMENT_REGISTERED_CLASS_OPT(varidx, idx,
@@ -161,6 +162,16 @@ void idx::do_print_latex(const print_latex & c, unsigned level) const
        c.s << "}";
 }
 
+void idx::do_print_csrc(const print_csrc & c, unsigned level) const
+{
+       c.s << "[";
+       if (value.info(info_flags::integer))
+               c.s << ex_to<numeric>(value).to_int();
+       else
+               value.print(c);
+       c.s << "]";
+}
+
 void idx::do_print_tree(const print_tree & c, unsigned level) const
 {
        c.s << std::string(level, ' ') << class_name() << " @" << this
index 930994d..d859b2e 100644 (file)
@@ -96,6 +96,7 @@ public:
 protected:
        void print_index(const print_context & c, unsigned level) const;
        void do_print(const print_context & c, unsigned level) const;
+       void do_print_csrc(const print_csrc & c, unsigned level) const;
        void do_print_latex(const print_latex & c, unsigned level) const;
        void do_print_tree(const print_tree & c, unsigned level) const;