};
};
+/** Flags to control the behavior of has(). */
+class has_options {
+public:
+ enum {
+ algebraic = 0x0001, ///< enable algebraic matching
+ };
+};
+
/** Flags to control the behavior of subs(). */
class subs_options {
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
};
};
public:
enum {
complex,
- real
+ real,
+ positive
};
};
class info_flags {
public:
enum {
- // answered by class numeric
+ // answered by class numeric and symbols/constants in particular domains
numeric,
real,
rational,