]> www.ginac.de Git - ginac.git/blobdiff - ginac/flags.h
- info(info_flags::has_indices) now works for sums and products. It
[ginac.git] / ginac / flags.h
index 6cf3ea94dde8b34e88b477d6d075ec7d97e3525c..372b89932ec995a4f8fe1c2de6c778163cb02150 100644 (file)
@@ -3,7 +3,7 @@
  *  Collection of all flags used through the GiNaC framework. */
 
 /*
- *  GiNaC Copyright (C) 1999-2005 Johannes Gutenberg University Mainz, Germany
+ *  GiNaC Copyright (C) 1999-2007 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
@@ -52,7 +52,11 @@ public:
                subs_algebraic = 0x0002,  // for backwards compatibility
                pattern_is_product = 0x0004,     ///< used internally by expairseq::subschildren()
                pattern_is_not_product = 0x0008, ///< used internally by expairseq::subschildren()
-               no_index_renaming = 0x0010
+               no_index_renaming = 0x0010,
+               // To indicate that we want to substitue an index by something that is
+               // is not an index. Without this flag the index value would be
+               // substituted in that case.
+               really_subs_idx = 0x0020
        };
 };
 
@@ -189,7 +193,9 @@ public:
                evaluated       = 0x0002, ///< .eval() has already done its job
                expanded        = 0x0004, ///< .expand(0) has already done its job (other expand() options ignore this flag)
                hash_calculated = 0x0008, ///< .calchash() has already done its job
-               not_shareable   = 0x0010  ///< don't share instances of this object between different expressions unless explicitly asked to (used by ex::compare())
+               not_shareable   = 0x0010, ///< don't share instances of this object between different expressions unless explicitly asked to (used by ex::compare())
+               has_indices     = 0x0020,
+               has_no_indices  = 0x0040  // ! (has_indices || has_no_indices) means "don't know"
        };
 };
 
@@ -246,7 +252,10 @@ public:
                has_indices,  // object has at least one index
 
                // answered by class idx
-               idx
+               idx,
+
+               // answered by classes numeric, symbol, add, mul, power
+               expanded
        };
 };