]> www.ginac.de Git - ginac.git/blobdiff - ginac/flags.h
Put entire GiNaC documentation into @dircategory 'Mathematics' for info.
[ginac.git] / ginac / flags.h
index 90f58ad2e734669dd383b7a2c7d77a2b3c3942dd..86d823844f80558242cd3bb18bfc7e148270758e 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
@@ -34,6 +34,14 @@ public:
        };
 };
 
+/** 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:
@@ -43,7 +51,12 @@ public:
                algebraic = 0x0002,              ///< enable algebraic substitutions
                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()
+               pattern_is_not_product = 0x0008, ///< used internally by expairseq::subschildren()
+               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
        };
 };
 
@@ -52,7 +65,8 @@ class domain {
 public:
        enum {
                complex,
-               real
+               real,
+               positive
        };
 };
 
@@ -187,7 +201,7 @@ public:
 class info_flags {
 public:
        enum {
-               // answered by class numeric
+               // answered by class numeric and symbols/constants in particular domains
                numeric,
                real,
                rational,
@@ -236,7 +250,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
        };
 };